1038 lines
37 KiB
C
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 */
|
|
|
|
|