Files
vxWorks/h/opcda.h
2025-08-20 18:25:46 +08:00

1038 lines
37 KiB
C

/* opcda.h generated by WIDL Version 2.2.1 on 06-Dec-01 at 11:53:51 AM */
#include "comBase.h"
#ifndef __INCopcda_h
#define __INCopcda_h
#include "vxidl.h"
#ifdef __cplusplus
extern "C" {
#endif
int include_opcda (void);
#ifndef __IOPCServer_FWD_DEFINED__
#define __IOPCServer_FWD_DEFINED__
typedef interface IOPCServer IOPCServer;
#endif /* __IOPCServer_FWD_DEFINED__ */
#ifndef __IOPCServerPublicGroups_FWD_DEFINED__
#define __IOPCServerPublicGroups_FWD_DEFINED__
typedef interface IOPCServerPublicGroups IOPCServerPublicGroups;
#endif /* __IOPCServerPublicGroups_FWD_DEFINED__ */
#ifndef __IOPCBrowseServerAddressSpace_FWD_DEFINED__
#define __IOPCBrowseServerAddressSpace_FWD_DEFINED__
typedef interface IOPCBrowseServerAddressSpace IOPCBrowseServerAddressSpace;
#endif /* __IOPCBrowseServerAddressSpace_FWD_DEFINED__ */
#ifndef __IOPCGroupStateMgt_FWD_DEFINED__
#define __IOPCGroupStateMgt_FWD_DEFINED__
typedef interface IOPCGroupStateMgt IOPCGroupStateMgt;
#endif /* __IOPCGroupStateMgt_FWD_DEFINED__ */
#ifndef __IOPCPublicGroupStateMgt_FWD_DEFINED__
#define __IOPCPublicGroupStateMgt_FWD_DEFINED__
typedef interface IOPCPublicGroupStateMgt IOPCPublicGroupStateMgt;
#endif /* __IOPCPublicGroupStateMgt_FWD_DEFINED__ */
#ifndef __IOPCSyncIO_FWD_DEFINED__
#define __IOPCSyncIO_FWD_DEFINED__
typedef interface IOPCSyncIO IOPCSyncIO;
#endif /* __IOPCSyncIO_FWD_DEFINED__ */
#ifndef __IOPCAsyncIO_FWD_DEFINED__
#define __IOPCAsyncIO_FWD_DEFINED__
typedef interface IOPCAsyncIO IOPCAsyncIO;
#endif /* __IOPCAsyncIO_FWD_DEFINED__ */
#ifndef __IOPCItemMgt_FWD_DEFINED__
#define __IOPCItemMgt_FWD_DEFINED__
typedef interface IOPCItemMgt IOPCItemMgt;
#endif /* __IOPCItemMgt_FWD_DEFINED__ */
#ifndef __IEnumOPCItemAttributes_FWD_DEFINED__
#define __IEnumOPCItemAttributes_FWD_DEFINED__
typedef interface IEnumOPCItemAttributes IEnumOPCItemAttributes;
#endif /* __IEnumOPCItemAttributes_FWD_DEFINED__ */
#ifndef __IOPCDataCallback_FWD_DEFINED__
#define __IOPCDataCallback_FWD_DEFINED__
typedef interface IOPCDataCallback IOPCDataCallback;
#endif /* __IOPCDataCallback_FWD_DEFINED__ */
#ifndef __IOPCAsyncIO2_FWD_DEFINED__
#define __IOPCAsyncIO2_FWD_DEFINED__
typedef interface IOPCAsyncIO2 IOPCAsyncIO2;
#endif /* __IOPCAsyncIO2_FWD_DEFINED__ */
#ifndef __IOPCItemProperties_FWD_DEFINED__
#define __IOPCItemProperties_FWD_DEFINED__
typedef interface IOPCItemProperties IOPCItemProperties;
#endif /* __IOPCItemProperties_FWD_DEFINED__ */
enum tagOPCDATASOURCE
{
OPC_DS_CACHE = 1,
OPC_DS_DEVICE = 2,
};
typedef enum tagOPCDATASOURCE OPCDATASOURCE;
enum tagOPCBROWSETYPE
{
OPC_BRANCH = 1,
OPC_LEAF = 2,
OPC_FLAT = 3,
};
typedef enum tagOPCBROWSETYPE OPCBROWSETYPE;
enum tagOPCNAMESPACETYPE
{
OPC_NS_HIERARCHIAL = 1,
OPC_NS_FLAT = 2,
};
typedef enum tagOPCNAMESPACETYPE OPCNAMESPACETYPE;
enum tagOPCBROWSEDIRECTION
{
OPC_BROWSE_UP = 1,
OPC_BROWSE_DOWN = 2,
OPC_BROWSE_TO = 3,
};
typedef enum tagOPCBROWSEDIRECTION OPCBROWSEDIRECTION;
#define OPC_READABLE 1
#define OPC_WRITEABLE 2
enum tagOPCEUTYPE
{
OPC_NOENUM = 0,
OPC_ANALOG = 1,
OPC_ENUMERATED = 2,
};
typedef enum tagOPCEUTYPE OPCEUTYPE;
enum tagOPCSERVERSTATE
{
OPC_STATUS_RUNNING = 1,
OPC_STATUS_FAILED = 2,
OPC_STATUS_NOCONFIG = 3,
OPC_STATUS_SUSPENDED = 4,
OPC_STATUS_TEST = 5,
};
typedef enum tagOPCSERVERSTATE OPCSERVERSTATE;
enum tagOPCENUMSCOPE
{
OPC_ENUM_PRIVATE_CONNECTIONS = 1,
OPC_ENUM_PUBLIC_CONNECTIONS = 2,
OPC_ENUM_ALL_CONNECTIONS = 3,
OPC_ENUM_PRIVATE = 4,
OPC_ENUM_PUBLIC = 5,
OPC_ENUM_ALL = 6,
};
typedef enum tagOPCENUMSCOPE OPCENUMSCOPE;
typedef DWORD OPCHANDLE;
struct tagOPCGROUPHEADER
{
DWORD dwSize;
DWORD dwItemCount;
OPCHANDLE hClientGroup;
DWORD dwTransactionID;
HRESULT hrStatus;
};
typedef struct tagOPCGROUPHEADER OPCGROUPHEADER;
struct tagOPCITEMHEADER1
{
OPCHANDLE hClient;
DWORD dwValueOffset;
WORD wQuality;
WORD wReserved;
FILETIME ftTimeStampItem;
};
typedef struct tagOPCITEMHEADER1 OPCITEMHEADER1;
struct tagOPCITEMHEADER2
{
OPCHANDLE hClient;
DWORD dwValueOffset;
WORD wQuality;
WORD wReserved;
};
typedef struct tagOPCITEMHEADER2 OPCITEMHEADER2;
struct tagOPCGROUPHEADERWRITE
{
DWORD dwItemCount;
OPCHANDLE hClientGroup;
DWORD dwTransactionID;
HRESULT hrStatus;
};
typedef struct tagOPCGROUPHEADERWRITE OPCGROUPHEADERWRITE;
struct tagOPCITEMHEADERWRITE
{
OPCHANDLE hClient;
HRESULT dwError;
};
typedef struct tagOPCITEMHEADERWRITE OPCITEMHEADERWRITE;
struct tagOPCITEMSTATE
{
OPCHANDLE hClient;
FILETIME ftTimeStamp;
WORD wQuality;
WORD wReserved;
VARIANT vDataValue;
};
typedef struct tagOPCITEMSTATE OPCITEMSTATE;
struct tagOPCSERVERSTATUS
{
FILETIME ftStartTime;
FILETIME ftCurrentTime;
FILETIME ftLastUpdateTime;
OPCSERVERSTATE dwServerState;
DWORD dwGroupCount;
DWORD dwBandWidth;
WORD wMajorVersion;
WORD wMinorVersion;
WORD wBuildNumber;
WORD wReserved;
LPWSTR szVendorInfo;
};
typedef struct tagOPCSERVERSTATUS OPCSERVERSTATUS;
struct tagOPCITEMDEF
{
LPWSTR szAccessPath;
LPWSTR szItemID;
BOOL bActive;
OPCHANDLE hClient;
DWORD dwBlobSize;
BYTE* pBlob;
VARTYPE vtRequestedDataType;
WORD wReserved;
};
typedef struct tagOPCITEMDEF OPCITEMDEF;
struct tagOPCITEMATTRIBUTES
{
LPWSTR szAccessPath;
LPWSTR szItemID;
BOOL bActive;
OPCHANDLE hClient;
OPCHANDLE hServer;
DWORD dwAccessRights;
DWORD dwBlobSize;
BYTE* pBlob;
VARTYPE vtRequestedDataType;
VARTYPE vtCanonicalDataType;
OPCEUTYPE dwEUType;
VARIANT vEUInfo;
};
typedef struct tagOPCITEMATTRIBUTES OPCITEMATTRIBUTES;
struct tagOPCITEMRESULT
{
OPCHANDLE hServer;
VARTYPE vtCanonicalDataType;
WORD wReserved;
DWORD dwAccessRights;
DWORD dwBlobSize;
BYTE* pBlob;
};
typedef struct tagOPCITEMRESULT OPCITEMRESULT;
#define OPC_QUALITY_MASK 0xC0
#define OPC_STATUS_MASK 0xFC
#define OPC_LIMIT_MASK 0x03
#define OPC_QUALITY_BAD 0x00
#define OPC_QUALITY_UNCERTAIN 0x40
#define OPC_QUALITY_GOOD 0xC0
#define OPC_QUALITY_CONFIG_ERROR 0x04
#define OPC_QUALITY_NOT_CONNECTED 0x08
#define OPC_QUALITY_DEVICE_FAILURE 0x0c
#define OPC_QUALITY_SENSOR_FAILURE 0x10
#define OPC_QUALITY_LAST_KNOWN 0x14
#define OPC_QUALITY_COMM_FAILURE 0x18
#define OPC_QUALITY_OUT_OF_SERVICE 0x1C
#define OPC_QUALITY_LAST_USABLE 0x44
#define OPC_QUALITY_SENSOR_CAL 0x50
#define OPC_QUALITY_EGU_EXCEEDED 0x54
#define OPC_QUALITY_SUB_NORMAL 0x58
#define OPC_QUALITY_LOCAL_OVERRIDE 0xD8
#define OPC_LIMIT_OK 0x00
#define OPC_LIMIT_LOW 0x01
#define OPC_LIMIT_HIGH 0x02
#define OPC_LIMIT_CONST 0x03
typedef struct
{
COM_VTBL_BEGIN
COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
#define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
#define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
#define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (HRESULT, AddGroup, (IOPCServer* pThis, LPCWSTR szName, BOOL bActive, DWORD dwRequestedUpdateRate, OPCHANDLE hClientGroup, LONG* pTimeBias, FLOAT* pPercentDeadband, DWORD dwLCID, OPCHANDLE* phServerGroup, DWORD* pRevisedUpdateRate, REFIID riid, LPUNKNOWN* ppUnk));
#define IOPCServer_AddGroup(pThis, szName, bActive, dwRequestedUpdateRate, hClientGroup, pTimeBias, pPercentDeadband, dwLCID, phServerGroup, pRevisedUpdateRate, riid, ppUnk) pThis->lpVtbl->AddGroup(COM_ADJUST_THIS(pThis), szName, bActive, dwRequestedUpdateRate, hClientGroup, pTimeBias, pPercentDeadband, dwLCID, phServerGroup, pRevisedUpdateRate, riid, ppUnk)
COM_VTBL_ENTRY (HRESULT, GetErrorString, (IOPCServer* pThis, HRESULT dwError, LCID dwLocale, LPWSTR* ppString));
#define IOPCServer_GetErrorString(pThis, dwError, dwLocale, ppString) pThis->lpVtbl->GetErrorString(COM_ADJUST_THIS(pThis), dwError, dwLocale, ppString)
COM_VTBL_ENTRY (HRESULT, GetGroupByName, (IOPCServer* pThis, LPCWSTR szName, REFIID riid, LPUNKNOWN* ppUnk));
#define IOPCServer_GetGroupByName(pThis, szName, riid, ppUnk) pThis->lpVtbl->GetGroupByName(COM_ADJUST_THIS(pThis), szName, riid, ppUnk)
COM_VTBL_ENTRY (HRESULT, GetStatus, (IOPCServer* pThis, OPCSERVERSTATUS** ppServerStatus));
#define IOPCServer_GetStatus(pThis, ppServerStatus) pThis->lpVtbl->GetStatus(COM_ADJUST_THIS(pThis), ppServerStatus)
COM_VTBL_ENTRY (HRESULT, RemoveGroup, (IOPCServer* pThis, OPCHANDLE hServerGroup, BOOL bForce));
#define IOPCServer_RemoveGroup(pThis, hServerGroup, bForce) pThis->lpVtbl->RemoveGroup(COM_ADJUST_THIS(pThis), hServerGroup, bForce)
COM_VTBL_ENTRY (HRESULT, CreateGroupEnumerator, (IOPCServer* pThis, OPCENUMSCOPE dwScope, REFIID riid, LPUNKNOWN* ppUnk));
#define IOPCServer_CreateGroupEnumerator(pThis, dwScope, riid, ppUnk) pThis->lpVtbl->CreateGroupEnumerator(COM_ADJUST_THIS(pThis), dwScope, riid, ppUnk)
COM_VTBL_END
} IOPCServerVtbl;
#ifdef __cplusplus
interface IOPCServer : public IUnknown
{
virtual HRESULT AddGroup (LPCWSTR szName, BOOL bActive, DWORD dwRequestedUpdateRate, OPCHANDLE hClientGroup, LONG* pTimeBias, FLOAT* pPercentDeadband, DWORD dwLCID, OPCHANDLE* phServerGroup, DWORD* pRevisedUpdateRate, REFIID riid, LPUNKNOWN* ppUnk) =0;
virtual HRESULT GetErrorString (HRESULT dwError, LCID dwLocale, LPWSTR* ppString) =0;
virtual HRESULT GetGroupByName (LPCWSTR szName, REFIID riid, LPUNKNOWN* ppUnk) =0;
virtual HRESULT GetStatus (OPCSERVERSTATUS** ppServerStatus) =0;
virtual HRESULT RemoveGroup (OPCHANDLE hServerGroup, BOOL bForce) =0;
virtual HRESULT CreateGroupEnumerator (OPCENUMSCOPE dwScope, REFIID riid, LPUNKNOWN* ppUnk) =0;
};
#else
/* C interface definition for IOPCServer */
interface IOPCServer
{
const IOPCServerVtbl * lpVtbl;
};
#endif /* __cplusplus */
EXTERN_C const IID IID_IOPCServer;
typedef struct
{
COM_VTBL_BEGIN
COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
#define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
#define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
#define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (HRESULT, GetPublicGroupByName, (IOPCServerPublicGroups* pThis, LPCWSTR szName, REFIID riid, LPUNKNOWN* ppUnk));
#define IOPCServerPublicGroups_GetPublicGroupByName(pThis, szName, riid, ppUnk) pThis->lpVtbl->GetPublicGroupByName(COM_ADJUST_THIS(pThis), szName, riid, ppUnk)
COM_VTBL_ENTRY (HRESULT, RemovePublicGroup, (IOPCServerPublicGroups* pThis, OPCHANDLE hServerGroup, BOOL bForce));
#define IOPCServerPublicGroups_RemovePublicGroup(pThis, hServerGroup, bForce) pThis->lpVtbl->RemovePublicGroup(COM_ADJUST_THIS(pThis), hServerGroup, bForce)
COM_VTBL_END
} IOPCServerPublicGroupsVtbl;
#ifdef __cplusplus
interface IOPCServerPublicGroups : public IUnknown
{
virtual HRESULT GetPublicGroupByName (LPCWSTR szName, REFIID riid, LPUNKNOWN* ppUnk) =0;
virtual HRESULT RemovePublicGroup (OPCHANDLE hServerGroup, BOOL bForce) =0;
};
#else
/* C interface definition for IOPCServerPublicGroups */
interface IOPCServerPublicGroups
{
const IOPCServerPublicGroupsVtbl * lpVtbl;
};
#endif /* __cplusplus */
EXTERN_C const IID IID_IOPCServerPublicGroups;
typedef struct
{
COM_VTBL_BEGIN
COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
#define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
#define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
#define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (HRESULT, QueryOrganization, (IOPCBrowseServerAddressSpace* pThis, OPCNAMESPACETYPE* pNameSpaceType));
#define IOPCBrowseServerAddressSpace_QueryOrganization(pThis, pNameSpaceType) pThis->lpVtbl->QueryOrganization(COM_ADJUST_THIS(pThis), pNameSpaceType)
COM_VTBL_ENTRY (HRESULT, ChangeBrowsePosition, (IOPCBrowseServerAddressSpace* pThis, OPCBROWSEDIRECTION dwBrowseDirection, LPCWSTR szString));
#define IOPCBrowseServerAddressSpace_ChangeBrowsePosition(pThis, dwBrowseDirection, szString) pThis->lpVtbl->ChangeBrowsePosition(COM_ADJUST_THIS(pThis), dwBrowseDirection, szString)
COM_VTBL_ENTRY (HRESULT, BrowseOPCItemIDs, (IOPCBrowseServerAddressSpace* pThis, OPCBROWSETYPE dwBrowseFilterType, LPCWSTR szFilterCriteria, VARTYPE vtDataTypeFilter, DWORD dwAccessRightsFilter, LPENUMSTRING* ppIEnumString));
#define IOPCBrowseServerAddressSpace_BrowseOPCItemIDs(pThis, dwBrowseFilterType, szFilterCriteria, vtDataTypeFilter, dwAccessRightsFilter, ppIEnumString) pThis->lpVtbl->BrowseOPCItemIDs(COM_ADJUST_THIS(pThis), dwBrowseFilterType, szFilterCriteria, vtDataTypeFilter, dwAccessRightsFilter, ppIEnumString)
COM_VTBL_ENTRY (HRESULT, GetItemID, (IOPCBrowseServerAddressSpace* pThis, LPWSTR szItemDataID, LPWSTR* szItemID));
#define IOPCBrowseServerAddressSpace_GetItemID(pThis, szItemDataID, szItemID) pThis->lpVtbl->GetItemID(COM_ADJUST_THIS(pThis), szItemDataID, szItemID)
COM_VTBL_ENTRY (HRESULT, BrowseAccessPaths, (IOPCBrowseServerAddressSpace* pThis, LPCWSTR szItemID, LPENUMSTRING* ppIEnumString));
#define IOPCBrowseServerAddressSpace_BrowseAccessPaths(pThis, szItemID, ppIEnumString) pThis->lpVtbl->BrowseAccessPaths(COM_ADJUST_THIS(pThis), szItemID, ppIEnumString)
COM_VTBL_END
} IOPCBrowseServerAddressSpaceVtbl;
#ifdef __cplusplus
interface IOPCBrowseServerAddressSpace : public IUnknown
{
virtual HRESULT QueryOrganization (OPCNAMESPACETYPE* pNameSpaceType) =0;
virtual HRESULT ChangeBrowsePosition (OPCBROWSEDIRECTION dwBrowseDirection, LPCWSTR szString) =0;
virtual HRESULT BrowseOPCItemIDs (OPCBROWSETYPE dwBrowseFilterType, LPCWSTR szFilterCriteria, VARTYPE vtDataTypeFilter, DWORD dwAccessRightsFilter, LPENUMSTRING* ppIEnumString) =0;
virtual HRESULT GetItemID (LPWSTR szItemDataID, LPWSTR* szItemID) =0;
virtual HRESULT BrowseAccessPaths (LPCWSTR szItemID, LPENUMSTRING* ppIEnumString) =0;
};
#else
/* C interface definition for IOPCBrowseServerAddressSpace */
interface IOPCBrowseServerAddressSpace
{
const IOPCBrowseServerAddressSpaceVtbl * lpVtbl;
};
#endif /* __cplusplus */
EXTERN_C const IID IID_IOPCBrowseServerAddressSpace;
typedef struct
{
COM_VTBL_BEGIN
COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
#define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
#define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
#define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (HRESULT, GetState, (IOPCGroupStateMgt* pThis, DWORD* pUpdateRate, BOOL* pActive, LPWSTR* ppName, LONG* pTimeBias, FLOAT* pPercentDeadband, DWORD* pLCID, OPCHANDLE* phClientGroup, OPCHANDLE* phServerGroup));
#define IOPCGroupStateMgt_GetState(pThis, pUpdateRate, pActive, ppName, pTimeBias, pPercentDeadband, pLCID, phClientGroup, phServerGroup) pThis->lpVtbl->GetState(COM_ADJUST_THIS(pThis), pUpdateRate, pActive, ppName, pTimeBias, pPercentDeadband, pLCID, phClientGroup, phServerGroup)
COM_VTBL_ENTRY (HRESULT, SetState, (IOPCGroupStateMgt* pThis, DWORD* pRequestedUpdateRate, DWORD* pRevisedUpdateRate, BOOL* pActive, LONG* pTimeBias, FLOAT* pPercentDeadband, DWORD* pLCID, OPCHANDLE* phClientGroup));
#define IOPCGroupStateMgt_SetState(pThis, pRequestedUpdateRate, pRevisedUpdateRate, pActive, pTimeBias, pPercentDeadband, pLCID, phClientGroup) pThis->lpVtbl->SetState(COM_ADJUST_THIS(pThis), pRequestedUpdateRate, pRevisedUpdateRate, pActive, pTimeBias, pPercentDeadband, pLCID, phClientGroup)
COM_VTBL_ENTRY (HRESULT, SetName, (IOPCGroupStateMgt* pThis, LPCWSTR szName));
#define IOPCGroupStateMgt_SetName(pThis, szName) pThis->lpVtbl->SetName(COM_ADJUST_THIS(pThis), szName)
COM_VTBL_ENTRY (HRESULT, CloneGroup, (IOPCGroupStateMgt* pThis, LPCWSTR szName, REFIID riid, LPUNKNOWN* ppUnk));
#define IOPCGroupStateMgt_CloneGroup(pThis, szName, riid, ppUnk) pThis->lpVtbl->CloneGroup(COM_ADJUST_THIS(pThis), szName, riid, ppUnk)
COM_VTBL_END
} IOPCGroupStateMgtVtbl;
#ifdef __cplusplus
interface IOPCGroupStateMgt : public IUnknown
{
virtual HRESULT GetState (DWORD* pUpdateRate, BOOL* pActive, LPWSTR* ppName, LONG* pTimeBias, FLOAT* pPercentDeadband, DWORD* pLCID, OPCHANDLE* phClientGroup, OPCHANDLE* phServerGroup) =0;
virtual HRESULT SetState (DWORD* pRequestedUpdateRate, DWORD* pRevisedUpdateRate, BOOL* pActive, LONG* pTimeBias, FLOAT* pPercentDeadband, DWORD* pLCID, OPCHANDLE* phClientGroup) =0;
virtual HRESULT SetName (LPCWSTR szName) =0;
virtual HRESULT CloneGroup (LPCWSTR szName, REFIID riid, LPUNKNOWN* ppUnk) =0;
};
#else
/* C interface definition for IOPCGroupStateMgt */
interface IOPCGroupStateMgt
{
const IOPCGroupStateMgtVtbl * lpVtbl;
};
#endif /* __cplusplus */
EXTERN_C const IID IID_IOPCGroupStateMgt;
typedef struct
{
COM_VTBL_BEGIN
COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
#define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
#define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
#define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (HRESULT, GetState, (IOPCPublicGroupStateMgt* pThis, BOOL* pPublic));
#define IOPCPublicGroupStateMgt_GetState(pThis, pPublic) pThis->lpVtbl->GetState(COM_ADJUST_THIS(pThis), pPublic)
COM_VTBL_ENTRY (HRESULT, MoveToPublic, (IOPCPublicGroupStateMgt* pThis));
#define IOPCPublicGroupStateMgt_MoveToPublic(pThis) pThis->lpVtbl->MoveToPublic(COM_ADJUST_THIS(pThis))
COM_VTBL_END
} IOPCPublicGroupStateMgtVtbl;
#ifdef __cplusplus
interface IOPCPublicGroupStateMgt : public IUnknown
{
virtual HRESULT GetState (BOOL* pPublic) =0;
virtual HRESULT MoveToPublic () =0;
};
#else
/* C interface definition for IOPCPublicGroupStateMgt */
interface IOPCPublicGroupStateMgt
{
const IOPCPublicGroupStateMgtVtbl * lpVtbl;
};
#endif /* __cplusplus */
EXTERN_C const IID IID_IOPCPublicGroupStateMgt;
typedef struct
{
COM_VTBL_BEGIN
COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
#define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
#define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
#define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (HRESULT, Read, (IOPCSyncIO* pThis, OPCDATASOURCE dwSource, DWORD dwCount, OPCHANDLE* phServer, OPCITEMSTATE** ppItemValues, HRESULT** ppErrors));
#define IOPCSyncIO_Read(pThis, dwSource, dwCount, phServer, ppItemValues, ppErrors) pThis->lpVtbl->Read(COM_ADJUST_THIS(pThis), dwSource, dwCount, phServer, ppItemValues, ppErrors)
COM_VTBL_ENTRY (HRESULT, Write, (IOPCSyncIO* pThis, DWORD dwCount, OPCHANDLE* phServer, VARIANT* pItemValues, HRESULT** ppErrors));
#define IOPCSyncIO_Write(pThis, dwCount, phServer, pItemValues, ppErrors) pThis->lpVtbl->Write(COM_ADJUST_THIS(pThis), dwCount, phServer, pItemValues, ppErrors)
COM_VTBL_END
} IOPCSyncIOVtbl;
#ifdef __cplusplus
interface IOPCSyncIO : public IUnknown
{
virtual HRESULT Read (OPCDATASOURCE dwSource, DWORD dwCount, OPCHANDLE* phServer, OPCITEMSTATE** ppItemValues, HRESULT** ppErrors) =0;
virtual HRESULT Write (DWORD dwCount, OPCHANDLE* phServer, VARIANT* pItemValues, HRESULT** ppErrors) =0;
};
#else
/* C interface definition for IOPCSyncIO */
interface IOPCSyncIO
{
const IOPCSyncIOVtbl * lpVtbl;
};
#endif /* __cplusplus */
EXTERN_C const IID IID_IOPCSyncIO;
typedef struct
{
COM_VTBL_BEGIN
COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
#define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
#define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
#define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (HRESULT, Read, (IOPCAsyncIO* pThis, DWORD dwConnection, OPCDATASOURCE dwSource, DWORD dwCount, OPCHANDLE* phServer, DWORD* pTransactionID, HRESULT** ppErrors));
#define IOPCAsyncIO_Read(pThis, dwConnection, dwSource, dwCount, phServer, pTransactionID, ppErrors) pThis->lpVtbl->Read(COM_ADJUST_THIS(pThis), dwConnection, dwSource, dwCount, phServer, pTransactionID, ppErrors)
COM_VTBL_ENTRY (HRESULT, Write, (IOPCAsyncIO* pThis, DWORD dwConnection, DWORD dwCount, OPCHANDLE* phServer, VARIANT* pItemValues, DWORD* pTransactionID, HRESULT** ppErrors));
#define IOPCAsyncIO_Write(pThis, dwConnection, dwCount, phServer, pItemValues, pTransactionID, ppErrors) pThis->lpVtbl->Write(COM_ADJUST_THIS(pThis), dwConnection, dwCount, phServer, pItemValues, pTransactionID, ppErrors)
COM_VTBL_ENTRY (HRESULT, Refresh, (IOPCAsyncIO* pThis, DWORD dwConnection, OPCDATASOURCE dwSource, DWORD* pTransactionID));
#define IOPCAsyncIO_Refresh(pThis, dwConnection, dwSource, pTransactionID) pThis->lpVtbl->Refresh(COM_ADJUST_THIS(pThis), dwConnection, dwSource, pTransactionID)
COM_VTBL_ENTRY (HRESULT, Cancel, (IOPCAsyncIO* pThis, DWORD dwTransactionID));
#define IOPCAsyncIO_Cancel(pThis, dwTransactionID) pThis->lpVtbl->Cancel(COM_ADJUST_THIS(pThis), dwTransactionID)
COM_VTBL_END
} IOPCAsyncIOVtbl;
#ifdef __cplusplus
interface IOPCAsyncIO : public IUnknown
{
virtual HRESULT Read (DWORD dwConnection, OPCDATASOURCE dwSource, DWORD dwCount, OPCHANDLE* phServer, DWORD* pTransactionID, HRESULT** ppErrors) =0;
virtual HRESULT Write (DWORD dwConnection, DWORD dwCount, OPCHANDLE* phServer, VARIANT* pItemValues, DWORD* pTransactionID, HRESULT** ppErrors) =0;
virtual HRESULT Refresh (DWORD dwConnection, OPCDATASOURCE dwSource, DWORD* pTransactionID) =0;
virtual HRESULT Cancel (DWORD dwTransactionID) =0;
};
#else
/* C interface definition for IOPCAsyncIO */
interface IOPCAsyncIO
{
const IOPCAsyncIOVtbl * lpVtbl;
};
#endif /* __cplusplus */
EXTERN_C const IID IID_IOPCAsyncIO;
typedef struct
{
COM_VTBL_BEGIN
COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
#define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
#define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
#define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (HRESULT, AddItems, (IOPCItemMgt* pThis, DWORD dwCount, OPCITEMDEF* pItemArray, OPCITEMRESULT** ppAddResults, HRESULT** ppErrors));
#define IOPCItemMgt_AddItems(pThis, dwCount, pItemArray, ppAddResults, ppErrors) pThis->lpVtbl->AddItems(COM_ADJUST_THIS(pThis), dwCount, pItemArray, ppAddResults, ppErrors)
COM_VTBL_ENTRY (HRESULT, ValidateItems, (IOPCItemMgt* pThis, DWORD dwCount, OPCITEMDEF* pItemArray, BOOL bBlobUpdate, OPCITEMRESULT** ppValidationResults, HRESULT** ppErrors));
#define IOPCItemMgt_ValidateItems(pThis, dwCount, pItemArray, bBlobUpdate, ppValidationResults, ppErrors) pThis->lpVtbl->ValidateItems(COM_ADJUST_THIS(pThis), dwCount, pItemArray, bBlobUpdate, ppValidationResults, ppErrors)
COM_VTBL_ENTRY (HRESULT, RemoveItems, (IOPCItemMgt* pThis, DWORD dwCount, OPCHANDLE* phServer, HRESULT** ppErrors));
#define IOPCItemMgt_RemoveItems(pThis, dwCount, phServer, ppErrors) pThis->lpVtbl->RemoveItems(COM_ADJUST_THIS(pThis), dwCount, phServer, ppErrors)
COM_VTBL_ENTRY (HRESULT, SetActiveState, (IOPCItemMgt* pThis, DWORD dwCount, OPCHANDLE* phServer, BOOL bActive, HRESULT** ppErrors));
#define IOPCItemMgt_SetActiveState(pThis, dwCount, phServer, bActive, ppErrors) pThis->lpVtbl->SetActiveState(COM_ADJUST_THIS(pThis), dwCount, phServer, bActive, ppErrors)
COM_VTBL_ENTRY (HRESULT, SetClientHandles, (IOPCItemMgt* pThis, DWORD dwCount, OPCHANDLE* phServer, OPCHANDLE* phClient, HRESULT** ppErrors));
#define IOPCItemMgt_SetClientHandles(pThis, dwCount, phServer, phClient, ppErrors) pThis->lpVtbl->SetClientHandles(COM_ADJUST_THIS(pThis), dwCount, phServer, phClient, ppErrors)
COM_VTBL_ENTRY (HRESULT, SetDatatypes, (IOPCItemMgt* pThis, DWORD dwCount, OPCHANDLE* phServer, VARTYPE* pRequestedDatatypes, HRESULT** ppErrors));
#define IOPCItemMgt_SetDatatypes(pThis, dwCount, phServer, pRequestedDatatypes, ppErrors) pThis->lpVtbl->SetDatatypes(COM_ADJUST_THIS(pThis), dwCount, phServer, pRequestedDatatypes, ppErrors)
COM_VTBL_ENTRY (HRESULT, CreateEnumerator, (IOPCItemMgt* pThis, REFIID riid, LPUNKNOWN* ppUnk));
#define IOPCItemMgt_CreateEnumerator(pThis, riid, ppUnk) pThis->lpVtbl->CreateEnumerator(COM_ADJUST_THIS(pThis), riid, ppUnk)
COM_VTBL_END
} IOPCItemMgtVtbl;
#ifdef __cplusplus
interface IOPCItemMgt : public IUnknown
{
virtual HRESULT AddItems (DWORD dwCount, OPCITEMDEF* pItemArray, OPCITEMRESULT** ppAddResults, HRESULT** ppErrors) =0;
virtual HRESULT ValidateItems (DWORD dwCount, OPCITEMDEF* pItemArray, BOOL bBlobUpdate, OPCITEMRESULT** ppValidationResults, HRESULT** ppErrors) =0;
virtual HRESULT RemoveItems (DWORD dwCount, OPCHANDLE* phServer, HRESULT** ppErrors) =0;
virtual HRESULT SetActiveState (DWORD dwCount, OPCHANDLE* phServer, BOOL bActive, HRESULT** ppErrors) =0;
virtual HRESULT SetClientHandles (DWORD dwCount, OPCHANDLE* phServer, OPCHANDLE* phClient, HRESULT** ppErrors) =0;
virtual HRESULT SetDatatypes (DWORD dwCount, OPCHANDLE* phServer, VARTYPE* pRequestedDatatypes, HRESULT** ppErrors) =0;
virtual HRESULT CreateEnumerator (REFIID riid, LPUNKNOWN* ppUnk) =0;
};
#else
/* C interface definition for IOPCItemMgt */
interface IOPCItemMgt
{
const IOPCItemMgtVtbl * lpVtbl;
};
#endif /* __cplusplus */
EXTERN_C const IID IID_IOPCItemMgt;
typedef struct
{
COM_VTBL_BEGIN
COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
#define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
#define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
#define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (HRESULT, Next, (IEnumOPCItemAttributes* pThis, ULONG celt, OPCITEMATTRIBUTES** ppItemArray, ULONG* pceltFetched));
#define IEnumOPCItemAttributes_Next(pThis, celt, ppItemArray, pceltFetched) pThis->lpVtbl->Next(COM_ADJUST_THIS(pThis), celt, ppItemArray, pceltFetched)
COM_VTBL_ENTRY (HRESULT, Skip, (IEnumOPCItemAttributes* pThis, ULONG celt));
#define IEnumOPCItemAttributes_Skip(pThis, celt) pThis->lpVtbl->Skip(COM_ADJUST_THIS(pThis), celt)
COM_VTBL_ENTRY (HRESULT, Reset, (IEnumOPCItemAttributes* pThis));
#define IEnumOPCItemAttributes_Reset(pThis) pThis->lpVtbl->Reset(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (HRESULT, Clone, (IEnumOPCItemAttributes* pThis, IEnumOPCItemAttributes** ppEnumItemAttributes));
#define IEnumOPCItemAttributes_Clone(pThis, ppEnumItemAttributes) pThis->lpVtbl->Clone(COM_ADJUST_THIS(pThis), ppEnumItemAttributes)
COM_VTBL_END
} IEnumOPCItemAttributesVtbl;
#ifdef __cplusplus
interface IEnumOPCItemAttributes : public IUnknown
{
virtual HRESULT Next (ULONG celt, OPCITEMATTRIBUTES** ppItemArray, ULONG* pceltFetched) =0;
virtual HRESULT Skip (ULONG celt) =0;
virtual HRESULT Reset () =0;
virtual HRESULT Clone (IEnumOPCItemAttributes** ppEnumItemAttributes) =0;
};
#else
/* C interface definition for IEnumOPCItemAttributes */
interface IEnumOPCItemAttributes
{
const IEnumOPCItemAttributesVtbl * lpVtbl;
};
#endif /* __cplusplus */
EXTERN_C const IID IID_IEnumOPCItemAttributes;
typedef struct
{
COM_VTBL_BEGIN
COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
#define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
#define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
#define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (HRESULT, OnDataChange, (IOPCDataCallback* pThis, DWORD dwTransid, OPCHANDLE hGroup, HRESULT hrMasterquality, HRESULT hrMastererror, DWORD dwCount, OPCHANDLE* phClientItems, VARIANT* pvValues, WORD* pwQualities, FILETIME* pftTimeStamps, HRESULT* pErrors));
#define IOPCDataCallback_OnDataChange(pThis, dwTransid, hGroup, hrMasterquality, hrMastererror, dwCount, phClientItems, pvValues, pwQualities, pftTimeStamps, pErrors) pThis->lpVtbl->OnDataChange(COM_ADJUST_THIS(pThis), dwTransid, hGroup, hrMasterquality, hrMastererror, dwCount, phClientItems, pvValues, pwQualities, pftTimeStamps, pErrors)
COM_VTBL_ENTRY (HRESULT, OnReadComplete, (IOPCDataCallback* pThis, DWORD dwTransid, OPCHANDLE hGroup, HRESULT hrMasterquality, HRESULT hrMastererror, DWORD dwCount, OPCHANDLE* phClientItems, VARIANT* pvValues, WORD* pwQualities, FILETIME* pftTimeStamps, HRESULT* pErrors));
#define IOPCDataCallback_OnReadComplete(pThis, dwTransid, hGroup, hrMasterquality, hrMastererror, dwCount, phClientItems, pvValues, pwQualities, pftTimeStamps, pErrors) pThis->lpVtbl->OnReadComplete(COM_ADJUST_THIS(pThis), dwTransid, hGroup, hrMasterquality, hrMastererror, dwCount, phClientItems, pvValues, pwQualities, pftTimeStamps, pErrors)
COM_VTBL_ENTRY (HRESULT, OnWriteComplete, (IOPCDataCallback* pThis, DWORD dwTransid, OPCHANDLE hGroup, HRESULT hrMastererr, DWORD dwCount, OPCHANDLE* pClienthandles, HRESULT* pErrors));
#define IOPCDataCallback_OnWriteComplete(pThis, dwTransid, hGroup, hrMastererr, dwCount, pClienthandles, pErrors) pThis->lpVtbl->OnWriteComplete(COM_ADJUST_THIS(pThis), dwTransid, hGroup, hrMastererr, dwCount, pClienthandles, pErrors)
COM_VTBL_ENTRY (HRESULT, OnCancelComplete, (IOPCDataCallback* pThis, DWORD dwTransid, OPCHANDLE hGroup));
#define IOPCDataCallback_OnCancelComplete(pThis, dwTransid, hGroup) pThis->lpVtbl->OnCancelComplete(COM_ADJUST_THIS(pThis), dwTransid, hGroup)
COM_VTBL_END
} IOPCDataCallbackVtbl;
#ifdef __cplusplus
interface IOPCDataCallback : public IUnknown
{
virtual HRESULT OnDataChange (DWORD dwTransid, OPCHANDLE hGroup, HRESULT hrMasterquality, HRESULT hrMastererror, DWORD dwCount, OPCHANDLE* phClientItems, VARIANT* pvValues, WORD* pwQualities, FILETIME* pftTimeStamps, HRESULT* pErrors) =0;
virtual HRESULT OnReadComplete (DWORD dwTransid, OPCHANDLE hGroup, HRESULT hrMasterquality, HRESULT hrMastererror, DWORD dwCount, OPCHANDLE* phClientItems, VARIANT* pvValues, WORD* pwQualities, FILETIME* pftTimeStamps, HRESULT* pErrors) =0;
virtual HRESULT OnWriteComplete (DWORD dwTransid, OPCHANDLE hGroup, HRESULT hrMastererr, DWORD dwCount, OPCHANDLE* pClienthandles, HRESULT* pErrors) =0;
virtual HRESULT OnCancelComplete (DWORD dwTransid, OPCHANDLE hGroup) =0;
};
#else
/* C interface definition for IOPCDataCallback */
interface IOPCDataCallback
{
const IOPCDataCallbackVtbl * lpVtbl;
};
#endif /* __cplusplus */
EXTERN_C const IID IID_IOPCDataCallback;
typedef struct
{
COM_VTBL_BEGIN
COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
#define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
#define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
#define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (HRESULT, Read, (IOPCAsyncIO2* pThis, DWORD dwCount, OPCHANDLE* phServer, DWORD dwTransactionID, DWORD* pdwCancelID, HRESULT** ppErrors));
#define IOPCAsyncIO2_Read(pThis, dwCount, phServer, dwTransactionID, pdwCancelID, ppErrors) pThis->lpVtbl->Read(COM_ADJUST_THIS(pThis), dwCount, phServer, dwTransactionID, pdwCancelID, ppErrors)
COM_VTBL_ENTRY (HRESULT, Write, (IOPCAsyncIO2* pThis, DWORD dwCount, OPCHANDLE* phServer, VARIANT* pItemValues, DWORD dwTransactionID, DWORD* pdwCancelID, HRESULT** ppErrors));
#define IOPCAsyncIO2_Write(pThis, dwCount, phServer, pItemValues, dwTransactionID, pdwCancelID, ppErrors) pThis->lpVtbl->Write(COM_ADJUST_THIS(pThis), dwCount, phServer, pItemValues, dwTransactionID, pdwCancelID, ppErrors)
COM_VTBL_ENTRY (HRESULT, Refresh2, (IOPCAsyncIO2* pThis, OPCDATASOURCE dwSource, DWORD dwTransactionID, DWORD* pdwCancelID));
#define IOPCAsyncIO2_Refresh2(pThis, dwSource, dwTransactionID, pdwCancelID) pThis->lpVtbl->Refresh2(COM_ADJUST_THIS(pThis), dwSource, dwTransactionID, pdwCancelID)
COM_VTBL_ENTRY (HRESULT, Cancel2, (IOPCAsyncIO2* pThis, DWORD dwCancelID));
#define IOPCAsyncIO2_Cancel2(pThis, dwCancelID) pThis->lpVtbl->Cancel2(COM_ADJUST_THIS(pThis), dwCancelID)
COM_VTBL_ENTRY (HRESULT, SetEnable, (IOPCAsyncIO2* pThis, BOOL bEnable));
#define IOPCAsyncIO2_SetEnable(pThis, bEnable) pThis->lpVtbl->SetEnable(COM_ADJUST_THIS(pThis), bEnable)
COM_VTBL_ENTRY (HRESULT, GetEnable, (IOPCAsyncIO2* pThis, BOOL* pbEnable));
#define IOPCAsyncIO2_GetEnable(pThis, pbEnable) pThis->lpVtbl->GetEnable(COM_ADJUST_THIS(pThis), pbEnable)
COM_VTBL_END
} IOPCAsyncIO2Vtbl;
#ifdef __cplusplus
interface IOPCAsyncIO2 : public IUnknown
{
virtual HRESULT Read (DWORD dwCount, OPCHANDLE* phServer, DWORD dwTransactionID, DWORD* pdwCancelID, HRESULT** ppErrors) =0;
virtual HRESULT Write (DWORD dwCount, OPCHANDLE* phServer, VARIANT* pItemValues, DWORD dwTransactionID, DWORD* pdwCancelID, HRESULT** ppErrors) =0;
virtual HRESULT Refresh2 (OPCDATASOURCE dwSource, DWORD dwTransactionID, DWORD* pdwCancelID) =0;
virtual HRESULT Cancel2 (DWORD dwCancelID) =0;
virtual HRESULT SetEnable (BOOL bEnable) =0;
virtual HRESULT GetEnable (BOOL* pbEnable) =0;
};
#else
/* C interface definition for IOPCAsyncIO2 */
interface IOPCAsyncIO2
{
const IOPCAsyncIO2Vtbl * lpVtbl;
};
#endif /* __cplusplus */
EXTERN_C const IID IID_IOPCAsyncIO2;
typedef struct
{
COM_VTBL_BEGIN
COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
#define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
#define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
#define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
COM_VTBL_ENTRY (HRESULT, QueryAvailableProperties, (IOPCItemProperties* pThis, LPWSTR szItemID, DWORD* pdwCount, DWORD** ppPropertyIDs, LPWSTR** ppDescriptions, VARTYPE** ppvtDataTypes));
#define IOPCItemProperties_QueryAvailableProperties(pThis, szItemID, pdwCount, ppPropertyIDs, ppDescriptions, ppvtDataTypes) pThis->lpVtbl->QueryAvailableProperties(COM_ADJUST_THIS(pThis), szItemID, pdwCount, ppPropertyIDs, ppDescriptions, ppvtDataTypes)
COM_VTBL_ENTRY (HRESULT, GetItemProperties, (IOPCItemProperties* pThis, LPWSTR szItemID, DWORD dwCount, DWORD* pdwPropertyIDs, VARIANT** ppvData, HRESULT** ppErrors));
#define IOPCItemProperties_GetItemProperties(pThis, szItemID, dwCount, pdwPropertyIDs, ppvData, ppErrors) pThis->lpVtbl->GetItemProperties(COM_ADJUST_THIS(pThis), szItemID, dwCount, pdwPropertyIDs, ppvData, ppErrors)
COM_VTBL_ENTRY (HRESULT, LookupItemIDs, (IOPCItemProperties* pThis, LPWSTR szItemID, DWORD dwCount, DWORD* pdwPropertyIDs, LPWSTR** ppszNewItemIDs, HRESULT** ppErrors));
#define IOPCItemProperties_LookupItemIDs(pThis, szItemID, dwCount, pdwPropertyIDs, ppszNewItemIDs, ppErrors) pThis->lpVtbl->LookupItemIDs(COM_ADJUST_THIS(pThis), szItemID, dwCount, pdwPropertyIDs, ppszNewItemIDs, ppErrors)
COM_VTBL_END
} IOPCItemPropertiesVtbl;
#ifdef __cplusplus
interface IOPCItemProperties : public IUnknown
{
virtual HRESULT QueryAvailableProperties (LPWSTR szItemID, DWORD* pdwCount, DWORD** ppPropertyIDs, LPWSTR** ppDescriptions, VARTYPE** ppvtDataTypes) =0;
virtual HRESULT GetItemProperties (LPWSTR szItemID, DWORD dwCount, DWORD* pdwPropertyIDs, VARIANT** ppvData, HRESULT** ppErrors) =0;
virtual HRESULT LookupItemIDs (LPWSTR szItemID, DWORD dwCount, DWORD* pdwPropertyIDs, LPWSTR** ppszNewItemIDs, HRESULT** ppErrors) =0;
};
#else
/* C interface definition for IOPCItemProperties */
interface IOPCItemProperties
{
const IOPCItemPropertiesVtbl * lpVtbl;
};
#endif /* __cplusplus */
EXTERN_C const IID IID_IOPCItemProperties;
#ifdef __cplusplus
}
#endif
#endif /* __INCopcda_h */