opc_ae.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:21k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* opc_ae.h generated by WIDL Version 2.2.1 on 06-Dec-01 at 11:53:57 AM */
  2. #include "comBase.h"
  3. #ifndef __INCopc_ae_h
  4. #define __INCopc_ae_h
  5. #include "vxidl.h"
  6. #ifdef __cplusplus
  7. extern "C" {
  8. #endif
  9. int include_opc_ae (void);
  10. #ifndef __IOPCEventServer_FWD_DEFINED__
  11. #define __IOPCEventServer_FWD_DEFINED__
  12. typedef interface IOPCEventServer IOPCEventServer;
  13. #endif /* __IOPCEventServer_FWD_DEFINED__ */
  14. #ifndef __IOPCEventSubscriptionMgt_FWD_DEFINED__
  15. #define __IOPCEventSubscriptionMgt_FWD_DEFINED__
  16. typedef interface IOPCEventSubscriptionMgt IOPCEventSubscriptionMgt;
  17. #endif /* __IOPCEventSubscriptionMgt_FWD_DEFINED__ */
  18. #ifndef __IOPCEventAreaBrowser_FWD_DEFINED__
  19. #define __IOPCEventAreaBrowser_FWD_DEFINED__
  20. typedef interface IOPCEventAreaBrowser IOPCEventAreaBrowser;
  21. #endif /* __IOPCEventAreaBrowser_FWD_DEFINED__ */
  22. #ifndef __IOPCEventSink_FWD_DEFINED__
  23. #define __IOPCEventSink_FWD_DEFINED__
  24. typedef interface IOPCEventSink IOPCEventSink;
  25. #endif /* __IOPCEventSink_FWD_DEFINED__ */
  26. typedef DWORD OPCHANDLE;
  27. enum OPCAE_BROWSE_DOWN
  28. {
  29. OPCAE_BROWSE_UP = 1,
  30. OPCAE_BROWSE_TO = 2,
  31. };
  32. typedef enum OPCAE_BROWSE_DOWN OPCAEBROWSEDIRECTION;
  33. enum OPC_SOURCE
  34. {
  35. OPC_AREA = 1,
  36. };
  37. typedef enum OPC_SOURCE OPCAEBROWSETYPE;
  38. enum OPCAE_STATUS_FAILED
  39. {
  40. OPCAE_STATUS_RUNNING = 1,
  41. OPCAE_STATUS_NOCONFIG = 2,
  42. OPCAE_STATUS_SUSPENDED = 3,
  43. OPCAE_STATUS_TEST = 4,
  44. };
  45. typedef enum OPCAE_STATUS_FAILED OPCEVENTSERVERSTATE;
  46. struct tagONEVENTSTRUCT
  47. {
  48. WORD wChangeMask;
  49. WORD wNewState;
  50. LPWSTR szSource;
  51. FILETIME ftTime;
  52. LPWSTR szMessage;
  53. DWORD dwEventType;
  54. DWORD dwEventCategory;
  55. DWORD dwSeverity;
  56. LPWSTR szConditionName;
  57. LPWSTR szSubconditionName;
  58. WORD wQuality;
  59. WORD wReserved;
  60. BOOL bAckRequired;
  61. FILETIME ftActiveTime;
  62. DWORD dwCookie;
  63. DWORD dwNumEventAttrs;
  64. VARIANT* pEventAttributes;
  65. LPWSTR szActorID;
  66. };
  67. typedef struct tagONEVENTSTRUCT ONEVENTSTRUCT;
  68. struct tagOPCEVENTSERVERSTATUS
  69. {
  70. FILETIME ftStartTime;
  71. FILETIME ftCurrentTime;
  72. FILETIME ftLastUpdateTime;
  73. OPCEVENTSERVERSTATE dwServerState;
  74. WORD wMajorVersion;
  75. WORD wMinorVersion;
  76. WORD wBuildNumber;
  77. WORD wReserved;
  78. LPWSTR szVendorInfo;
  79. };
  80. typedef struct tagOPCEVENTSERVERSTATUS OPCEVENTSERVERSTATUS;
  81. struct tagOPCCONDITIONSTATE
  82. {
  83. WORD wState;
  84. WORD wReserved1;
  85. LPWSTR szActiveSubCondition;
  86. LPWSTR szASCDefinition;
  87. DWORD dwASCSeverity;
  88. LPWSTR szASCDescription;
  89. WORD wQuality;
  90. WORD wReserved2;
  91. FILETIME ftLastAckTime;
  92. FILETIME ftSubCondLastActive;
  93. FILETIME ftCondLastActive;
  94. FILETIME ftCondLastInactive;
  95. LPWSTR szAcknowledgerID;
  96. LPWSTR szComment;
  97. DWORD dwNumSCs;
  98. LPWSTR* pszSCNames;
  99. LPWSTR* pszSCDefinitions;
  100. DWORD* pdwSCSeverities;
  101. LPWSTR* pszSCDescriptions;
  102. DWORD dwNumEventAttrs;
  103. VARIANT* pEventAttributes;
  104. HRESULT* pErrors;
  105. };
  106. typedef struct tagOPCCONDITIONSTATE OPCCONDITIONSTATE;
  107. typedef struct
  108.     {
  109.     COM_VTBL_BEGIN
  110.     COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
  111. #define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
  112.     COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
  113. #define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
  114.     COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
  115. #define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
  116.     COM_VTBL_ENTRY (HRESULT, GetStatus, (IOPCEventServer* pThis, OPCEVENTSERVERSTATUS** ppEventServerStatus));
  117. #define IOPCEventServer_GetStatus(pThis, ppEventServerStatus) pThis->lpVtbl->GetStatus(COM_ADJUST_THIS(pThis), ppEventServerStatus)
  118.     COM_VTBL_ENTRY (HRESULT, CreateEventSubscription, (IOPCEventServer* pThis, BOOL bActive, DWORD dwBufferTime, DWORD dwMaxSize, OPCHANDLE hClientSubscription, REFIID riid, LPUNKNOWN* ppUnk, DWORD* pdwRevisedBufferTime, DWORD* pdwRevisedMaxSize));
  119. #define IOPCEventServer_CreateEventSubscription(pThis, bActive, dwBufferTime, dwMaxSize, hClientSubscription, riid, ppUnk, pdwRevisedBufferTime, pdwRevisedMaxSize) pThis->lpVtbl->CreateEventSubscription(COM_ADJUST_THIS(pThis), bActive, dwBufferTime, dwMaxSize, hClientSubscription, riid, ppUnk, pdwRevisedBufferTime, pdwRevisedMaxSize)
  120.     COM_VTBL_ENTRY (HRESULT, QueryAvailableFilters, (IOPCEventServer* pThis, DWORD* pdwFilterMask));
  121. #define IOPCEventServer_QueryAvailableFilters(pThis, pdwFilterMask) pThis->lpVtbl->QueryAvailableFilters(COM_ADJUST_THIS(pThis), pdwFilterMask)
  122.     COM_VTBL_ENTRY (HRESULT, QueryEventCategories, (IOPCEventServer* pThis, DWORD dwEventType, DWORD* pdwCount, DWORD** ppdwEventCategories, LPWSTR** ppszEventCategoryDescs));
  123. #define IOPCEventServer_QueryEventCategories(pThis, dwEventType, pdwCount, ppdwEventCategories, ppszEventCategoryDescs) pThis->lpVtbl->QueryEventCategories(COM_ADJUST_THIS(pThis), dwEventType, pdwCount, ppdwEventCategories, ppszEventCategoryDescs)
  124.     COM_VTBL_ENTRY (HRESULT, QueryConditionNames, (IOPCEventServer* pThis, DWORD dwEventCategory, DWORD* pdwCount, LPWSTR** ppszConditionNames));
  125. #define IOPCEventServer_QueryConditionNames(pThis, dwEventCategory, pdwCount, ppszConditionNames) pThis->lpVtbl->QueryConditionNames(COM_ADJUST_THIS(pThis), dwEventCategory, pdwCount, ppszConditionNames)
  126.     COM_VTBL_ENTRY (HRESULT, QuerySubConditionNames, (IOPCEventServer* pThis, LPWSTR szConditionName, DWORD* pdwCount, LPWSTR** ppszSubConditionNames));
  127. #define IOPCEventServer_QuerySubConditionNames(pThis, szConditionName, pdwCount, ppszSubConditionNames) pThis->lpVtbl->QuerySubConditionNames(COM_ADJUST_THIS(pThis), szConditionName, pdwCount, ppszSubConditionNames)
  128.     COM_VTBL_ENTRY (HRESULT, QuerySourceConditions, (IOPCEventServer* pThis, LPWSTR szSource, DWORD* pdwCount, LPWSTR** ppszConditionNames));
  129. #define IOPCEventServer_QuerySourceConditions(pThis, szSource, pdwCount, ppszConditionNames) pThis->lpVtbl->QuerySourceConditions(COM_ADJUST_THIS(pThis), szSource, pdwCount, ppszConditionNames)
  130.     COM_VTBL_ENTRY (HRESULT, QueryEventAttributes, (IOPCEventServer* pThis, DWORD dwEventCategory, DWORD* pdwCount, DWORD** ppdwAttrIDs, LPWSTR** ppszAttrDescs, VARTYPE** ppvtAttrTypes));
  131. #define IOPCEventServer_QueryEventAttributes(pThis, dwEventCategory, pdwCount, ppdwAttrIDs, ppszAttrDescs, ppvtAttrTypes) pThis->lpVtbl->QueryEventAttributes(COM_ADJUST_THIS(pThis), dwEventCategory, pdwCount, ppdwAttrIDs, ppszAttrDescs, ppvtAttrTypes)
  132.     COM_VTBL_ENTRY (HRESULT, TranslateToItemIDs, (IOPCEventServer* pThis, LPWSTR szSource, DWORD dwEventCategory, LPWSTR szConditionName, LPWSTR szSubconditionName, DWORD dwCount, DWORD* pdwAssocAttrIDs, LPWSTR** ppszAttrItemIDs, LPWSTR** ppszNodeNames, CLSID** ppCLSIDs));
  133. #define IOPCEventServer_TranslateToItemIDs(pThis, szSource, dwEventCategory, szConditionName, szSubconditionName, dwCount, pdwAssocAttrIDs, ppszAttrItemIDs, ppszNodeNames, ppCLSIDs) pThis->lpVtbl->TranslateToItemIDs(COM_ADJUST_THIS(pThis), szSource, dwEventCategory, szConditionName, szSubconditionName, dwCount, pdwAssocAttrIDs, ppszAttrItemIDs, ppszNodeNames, ppCLSIDs)
  134.     COM_VTBL_ENTRY (HRESULT, GetConditionState, (IOPCEventServer* pThis, LPWSTR szSource, LPWSTR szConditionName, DWORD dwNumEventAttrs, DWORD* pdwAttributeIDs, OPCCONDITIONSTATE** ppConditionState));
  135. #define IOPCEventServer_GetConditionState(pThis, szSource, szConditionName, dwNumEventAttrs, pdwAttributeIDs, ppConditionState) pThis->lpVtbl->GetConditionState(COM_ADJUST_THIS(pThis), szSource, szConditionName, dwNumEventAttrs, pdwAttributeIDs, ppConditionState)
  136.     COM_VTBL_ENTRY (HRESULT, EnableConditionByArea, (IOPCEventServer* pThis, DWORD dwNumAreas, LPWSTR* pszAreas));
  137. #define IOPCEventServer_EnableConditionByArea(pThis, dwNumAreas, pszAreas) pThis->lpVtbl->EnableConditionByArea(COM_ADJUST_THIS(pThis), dwNumAreas, pszAreas)
  138.     COM_VTBL_ENTRY (HRESULT, EnableConditionBySource, (IOPCEventServer* pThis, DWORD dwNumSources, LPWSTR* pszSources));
  139. #define IOPCEventServer_EnableConditionBySource(pThis, dwNumSources, pszSources) pThis->lpVtbl->EnableConditionBySource(COM_ADJUST_THIS(pThis), dwNumSources, pszSources)
  140.     COM_VTBL_ENTRY (HRESULT, DisableConditionByArea, (IOPCEventServer* pThis, DWORD dwNumAreas, LPWSTR* pszAreas));
  141. #define IOPCEventServer_DisableConditionByArea(pThis, dwNumAreas, pszAreas) pThis->lpVtbl->DisableConditionByArea(COM_ADJUST_THIS(pThis), dwNumAreas, pszAreas)
  142.     COM_VTBL_ENTRY (HRESULT, DisableConditionBySource, (IOPCEventServer* pThis, DWORD dwNumSources, LPWSTR* pszSources));
  143. #define IOPCEventServer_DisableConditionBySource(pThis, dwNumSources, pszSources) pThis->lpVtbl->DisableConditionBySource(COM_ADJUST_THIS(pThis), dwNumSources, pszSources)
  144.     COM_VTBL_ENTRY (HRESULT, AckCondition, (IOPCEventServer* pThis, DWORD dwCount, LPWSTR szAcknowledgerID, LPWSTR szComment, LPWSTR* pszSource, LPWSTR* pszConditionName, FILETIME* pftActiveTime, DWORD* pdwCookie, HRESULT** ppErrors));
  145. #define IOPCEventServer_AckCondition(pThis, dwCount, szAcknowledgerID, szComment, pszSource, pszConditionName, pftActiveTime, pdwCookie, ppErrors) pThis->lpVtbl->AckCondition(COM_ADJUST_THIS(pThis), dwCount, szAcknowledgerID, szComment, pszSource, pszConditionName, pftActiveTime, pdwCookie, ppErrors)
  146.     COM_VTBL_ENTRY (HRESULT, CreateAreaBrowser, (IOPCEventServer* pThis, REFIID riid, LPUNKNOWN* ppUnk));
  147. #define IOPCEventServer_CreateAreaBrowser(pThis, riid, ppUnk) pThis->lpVtbl->CreateAreaBrowser(COM_ADJUST_THIS(pThis), riid, ppUnk)
  148.     COM_VTBL_END
  149.     } IOPCEventServerVtbl;
  150. #ifdef __cplusplus
  151. interface IOPCEventServer : public IUnknown
  152. {
  153. virtual HRESULT GetStatus (OPCEVENTSERVERSTATUS** ppEventServerStatus) =0;
  154. virtual HRESULT CreateEventSubscription (BOOL bActive, DWORD dwBufferTime, DWORD dwMaxSize, OPCHANDLE hClientSubscription, REFIID riid, LPUNKNOWN* ppUnk, DWORD* pdwRevisedBufferTime, DWORD* pdwRevisedMaxSize) =0;
  155. virtual HRESULT QueryAvailableFilters (DWORD* pdwFilterMask) =0;
  156. virtual HRESULT QueryEventCategories (DWORD dwEventType, DWORD* pdwCount, DWORD** ppdwEventCategories, LPWSTR** ppszEventCategoryDescs) =0;
  157. virtual HRESULT QueryConditionNames (DWORD dwEventCategory, DWORD* pdwCount, LPWSTR** ppszConditionNames) =0;
  158. virtual HRESULT QuerySubConditionNames (LPWSTR szConditionName, DWORD* pdwCount, LPWSTR** ppszSubConditionNames) =0;
  159. virtual HRESULT QuerySourceConditions (LPWSTR szSource, DWORD* pdwCount, LPWSTR** ppszConditionNames) =0;
  160. virtual HRESULT QueryEventAttributes (DWORD dwEventCategory, DWORD* pdwCount, DWORD** ppdwAttrIDs, LPWSTR** ppszAttrDescs, VARTYPE** ppvtAttrTypes) =0;
  161. virtual HRESULT TranslateToItemIDs (LPWSTR szSource, DWORD dwEventCategory, LPWSTR szConditionName, LPWSTR szSubconditionName, DWORD dwCount, DWORD* pdwAssocAttrIDs, LPWSTR** ppszAttrItemIDs, LPWSTR** ppszNodeNames, CLSID** ppCLSIDs) =0;
  162. virtual HRESULT GetConditionState (LPWSTR szSource, LPWSTR szConditionName, DWORD dwNumEventAttrs, DWORD* pdwAttributeIDs, OPCCONDITIONSTATE** ppConditionState) =0;
  163. virtual HRESULT EnableConditionByArea (DWORD dwNumAreas, LPWSTR* pszAreas) =0;
  164. virtual HRESULT EnableConditionBySource (DWORD dwNumSources, LPWSTR* pszSources) =0;
  165. virtual HRESULT DisableConditionByArea (DWORD dwNumAreas, LPWSTR* pszAreas) =0;
  166. virtual HRESULT DisableConditionBySource (DWORD dwNumSources, LPWSTR* pszSources) =0;
  167. virtual HRESULT AckCondition (DWORD dwCount, LPWSTR szAcknowledgerID, LPWSTR szComment, LPWSTR* pszSource, LPWSTR* pszConditionName, FILETIME* pftActiveTime, DWORD* pdwCookie, HRESULT** ppErrors) =0;
  168. virtual HRESULT CreateAreaBrowser (REFIID riid, LPUNKNOWN* ppUnk) =0;
  169. };
  170. #else
  171. /* C interface definition for IOPCEventServer */
  172. interface IOPCEventServer
  173.     {
  174.     const IOPCEventServerVtbl *  lpVtbl;
  175.     };
  176. #endif /* __cplusplus */
  177. EXTERN_C const IID IID_IOPCEventServer;
  178. typedef struct
  179.     {
  180.     COM_VTBL_BEGIN
  181.     COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
  182. #define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
  183.     COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
  184. #define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
  185.     COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
  186. #define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
  187.     COM_VTBL_ENTRY (HRESULT, SetFilter, (IOPCEventSubscriptionMgt* pThis, DWORD dwEventType, DWORD dwNumCategories, DWORD* pdwEventCategories, DWORD dwLowSeverity, DWORD dwHighSeverity, DWORD dwNumAreas, LPWSTR* pszAreaList, DWORD dwNumSources, LPWSTR* pszSourceList));
  188. #define IOPCEventSubscriptionMgt_SetFilter(pThis, dwEventType, dwNumCategories, pdwEventCategories, dwLowSeverity, dwHighSeverity, dwNumAreas, pszAreaList, dwNumSources, pszSourceList) pThis->lpVtbl->SetFilter(COM_ADJUST_THIS(pThis), dwEventType, dwNumCategories, pdwEventCategories, dwLowSeverity, dwHighSeverity, dwNumAreas, pszAreaList, dwNumSources, pszSourceList)
  189.     COM_VTBL_ENTRY (HRESULT, GetFilter, (IOPCEventSubscriptionMgt* pThis, DWORD* pdwEventType, DWORD* pdwNumCategories, DWORD** ppdwEventCategories, DWORD* pdwLowSeverity, DWORD* pdwHighSeverity, DWORD* pdwNumAreas, LPWSTR** ppszAreaList, DWORD* pdwNumSources, LPWSTR** ppszSourceList));
  190. #define IOPCEventSubscriptionMgt_GetFilter(pThis, pdwEventType, pdwNumCategories, ppdwEventCategories, pdwLowSeverity, pdwHighSeverity, pdwNumAreas, ppszAreaList, pdwNumSources, ppszSourceList) pThis->lpVtbl->GetFilter(COM_ADJUST_THIS(pThis), pdwEventType, pdwNumCategories, ppdwEventCategories, pdwLowSeverity, pdwHighSeverity, pdwNumAreas, ppszAreaList, pdwNumSources, ppszSourceList)
  191.     COM_VTBL_ENTRY (HRESULT, SelectReturnedAttributes, (IOPCEventSubscriptionMgt* pThis, DWORD dwEventCategory, DWORD dwCount, DWORD* dwAttributeIDs));
  192. #define IOPCEventSubscriptionMgt_SelectReturnedAttributes(pThis, dwEventCategory, dwCount, dwAttributeIDs) pThis->lpVtbl->SelectReturnedAttributes(COM_ADJUST_THIS(pThis), dwEventCategory, dwCount, dwAttributeIDs)
  193.     COM_VTBL_ENTRY (HRESULT, GetReturnedAttributes, (IOPCEventSubscriptionMgt* pThis, DWORD dwEventCategory, DWORD* pdwCount, DWORD** ppdwAttributeIDs));
  194. #define IOPCEventSubscriptionMgt_GetReturnedAttributes(pThis, dwEventCategory, pdwCount, ppdwAttributeIDs) pThis->lpVtbl->GetReturnedAttributes(COM_ADJUST_THIS(pThis), dwEventCategory, pdwCount, ppdwAttributeIDs)
  195.     COM_VTBL_ENTRY (HRESULT, Refresh, (IOPCEventSubscriptionMgt* pThis, DWORD dwConnection));
  196. #define IOPCEventSubscriptionMgt_Refresh(pThis, dwConnection) pThis->lpVtbl->Refresh(COM_ADJUST_THIS(pThis), dwConnection)
  197.     COM_VTBL_ENTRY (HRESULT, CancelRefresh, (IOPCEventSubscriptionMgt* pThis, DWORD dwConnection));
  198. #define IOPCEventSubscriptionMgt_CancelRefresh(pThis, dwConnection) pThis->lpVtbl->CancelRefresh(COM_ADJUST_THIS(pThis), dwConnection)
  199.     COM_VTBL_ENTRY (HRESULT, GetState, (IOPCEventSubscriptionMgt* pThis, BOOL* pbActive, DWORD* pdwBufferTime, DWORD* pdwMaxSize, OPCHANDLE* phClientSubscription));
  200. #define IOPCEventSubscriptionMgt_GetState(pThis, pbActive, pdwBufferTime, pdwMaxSize, phClientSubscription) pThis->lpVtbl->GetState(COM_ADJUST_THIS(pThis), pbActive, pdwBufferTime, pdwMaxSize, phClientSubscription)
  201.     COM_VTBL_ENTRY (HRESULT, SetState, (IOPCEventSubscriptionMgt* pThis, BOOL* pbActive, DWORD* pdwBufferTime, DWORD* pdwMaxSize, OPCHANDLE hClientSubscription, DWORD* pdwRevisedBufferTime, DWORD* pdwRevisedMaxSize));
  202. #define IOPCEventSubscriptionMgt_SetState(pThis, pbActive, pdwBufferTime, pdwMaxSize, hClientSubscription, pdwRevisedBufferTime, pdwRevisedMaxSize) pThis->lpVtbl->SetState(COM_ADJUST_THIS(pThis), pbActive, pdwBufferTime, pdwMaxSize, hClientSubscription, pdwRevisedBufferTime, pdwRevisedMaxSize)
  203.     COM_VTBL_END
  204.     } IOPCEventSubscriptionMgtVtbl;
  205. #ifdef __cplusplus
  206. interface IOPCEventSubscriptionMgt : public IUnknown
  207. {
  208. virtual HRESULT SetFilter (DWORD dwEventType, DWORD dwNumCategories, DWORD* pdwEventCategories, DWORD dwLowSeverity, DWORD dwHighSeverity, DWORD dwNumAreas, LPWSTR* pszAreaList, DWORD dwNumSources, LPWSTR* pszSourceList) =0;
  209. virtual HRESULT GetFilter (DWORD* pdwEventType, DWORD* pdwNumCategories, DWORD** ppdwEventCategories, DWORD* pdwLowSeverity, DWORD* pdwHighSeverity, DWORD* pdwNumAreas, LPWSTR** ppszAreaList, DWORD* pdwNumSources, LPWSTR** ppszSourceList) =0;
  210. virtual HRESULT SelectReturnedAttributes (DWORD dwEventCategory, DWORD dwCount, DWORD* dwAttributeIDs) =0;
  211. virtual HRESULT GetReturnedAttributes (DWORD dwEventCategory, DWORD* pdwCount, DWORD** ppdwAttributeIDs) =0;
  212. virtual HRESULT Refresh (DWORD dwConnection) =0;
  213. virtual HRESULT CancelRefresh (DWORD dwConnection) =0;
  214. virtual HRESULT GetState (BOOL* pbActive, DWORD* pdwBufferTime, DWORD* pdwMaxSize, OPCHANDLE* phClientSubscription) =0;
  215. virtual HRESULT SetState (BOOL* pbActive, DWORD* pdwBufferTime, DWORD* pdwMaxSize, OPCHANDLE hClientSubscription, DWORD* pdwRevisedBufferTime, DWORD* pdwRevisedMaxSize) =0;
  216. };
  217. #else
  218. /* C interface definition for IOPCEventSubscriptionMgt */
  219. interface IOPCEventSubscriptionMgt
  220.     {
  221.     const IOPCEventSubscriptionMgtVtbl *  lpVtbl;
  222.     };
  223. #endif /* __cplusplus */
  224. EXTERN_C const IID IID_IOPCEventSubscriptionMgt;
  225. typedef struct
  226.     {
  227.     COM_VTBL_BEGIN
  228.     COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
  229. #define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
  230.     COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
  231. #define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
  232.     COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
  233. #define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
  234.     COM_VTBL_ENTRY (HRESULT, ChangeBrowsePosition, (IOPCEventAreaBrowser* pThis, OPCAEBROWSEDIRECTION dwBrowseDirection, LPCWSTR szString));
  235. #define IOPCEventAreaBrowser_ChangeBrowsePosition(pThis, dwBrowseDirection, szString) pThis->lpVtbl->ChangeBrowsePosition(COM_ADJUST_THIS(pThis), dwBrowseDirection, szString)
  236.     COM_VTBL_ENTRY (HRESULT, BrowseOPCAreas, (IOPCEventAreaBrowser* pThis, OPCAEBROWSETYPE dwBrowseFilterType, LPCWSTR szFilterCriteria, LPENUMSTRING* ppIEnumString));
  237. #define IOPCEventAreaBrowser_BrowseOPCAreas(pThis, dwBrowseFilterType, szFilterCriteria, ppIEnumString) pThis->lpVtbl->BrowseOPCAreas(COM_ADJUST_THIS(pThis), dwBrowseFilterType, szFilterCriteria, ppIEnumString)
  238.     COM_VTBL_ENTRY (HRESULT, GetQualifiedAreaName, (IOPCEventAreaBrowser* pThis, LPCWSTR szAreaName, LPWSTR* pszQualifiedAreaName));
  239. #define IOPCEventAreaBrowser_GetQualifiedAreaName(pThis, szAreaName, pszQualifiedAreaName) pThis->lpVtbl->GetQualifiedAreaName(COM_ADJUST_THIS(pThis), szAreaName, pszQualifiedAreaName)
  240.     COM_VTBL_ENTRY (HRESULT, GetQualifiedSourceName, (IOPCEventAreaBrowser* pThis, LPCWSTR szSourceName, LPWSTR* pszQualifiedSourceName));
  241. #define IOPCEventAreaBrowser_GetQualifiedSourceName(pThis, szSourceName, pszQualifiedSourceName) pThis->lpVtbl->GetQualifiedSourceName(COM_ADJUST_THIS(pThis), szSourceName, pszQualifiedSourceName)
  242.     COM_VTBL_END
  243.     } IOPCEventAreaBrowserVtbl;
  244. #ifdef __cplusplus
  245. interface IOPCEventAreaBrowser : public IUnknown
  246. {
  247. virtual HRESULT ChangeBrowsePosition (OPCAEBROWSEDIRECTION dwBrowseDirection, LPCWSTR szString) =0;
  248. virtual HRESULT BrowseOPCAreas (OPCAEBROWSETYPE dwBrowseFilterType, LPCWSTR szFilterCriteria, LPENUMSTRING* ppIEnumString) =0;
  249. virtual HRESULT GetQualifiedAreaName (LPCWSTR szAreaName, LPWSTR* pszQualifiedAreaName) =0;
  250. virtual HRESULT GetQualifiedSourceName (LPCWSTR szSourceName, LPWSTR* pszQualifiedSourceName) =0;
  251. };
  252. #else
  253. /* C interface definition for IOPCEventAreaBrowser */
  254. interface IOPCEventAreaBrowser
  255.     {
  256.     const IOPCEventAreaBrowserVtbl *  lpVtbl;
  257.     };
  258. #endif /* __cplusplus */
  259. EXTERN_C const IID IID_IOPCEventAreaBrowser;
  260. typedef struct
  261.     {
  262.     COM_VTBL_BEGIN
  263.     COM_VTBL_ENTRY (HRESULT, QueryInterface, (IUnknown* pThis, REFIID riid, void** ppvObject));
  264. #define IUnknown_QueryInterface(pThis, riid, ppvObject) pThis->lpVtbl->QueryInterface(COM_ADJUST_THIS(pThis), riid, ppvObject)
  265.     COM_VTBL_ENTRY (ULONG, AddRef, (IUnknown* pThis));
  266. #define IUnknown_AddRef(pThis) pThis->lpVtbl->AddRef(COM_ADJUST_THIS(pThis))
  267.     COM_VTBL_ENTRY (ULONG, Release, (IUnknown* pThis));
  268. #define IUnknown_Release(pThis) pThis->lpVtbl->Release(COM_ADJUST_THIS(pThis))
  269.     COM_VTBL_ENTRY (HRESULT, OnEvent, (IOPCEventSink* pThis, OPCHANDLE hClientSubscription, BOOL bRefresh, BOOL bLastRefresh, DWORD dwCount, ONEVENTSTRUCT* pEvents));
  270. #define IOPCEventSink_OnEvent(pThis, hClientSubscription, bRefresh, bLastRefresh, dwCount, pEvents) pThis->lpVtbl->OnEvent(COM_ADJUST_THIS(pThis), hClientSubscription, bRefresh, bLastRefresh, dwCount, pEvents)
  271.     COM_VTBL_END
  272.     } IOPCEventSinkVtbl;
  273. #ifdef __cplusplus
  274. interface IOPCEventSink : public IUnknown
  275. {
  276. virtual HRESULT OnEvent (OPCHANDLE hClientSubscription, BOOL bRefresh, BOOL bLastRefresh, DWORD dwCount, ONEVENTSTRUCT* pEvents) =0;
  277. };
  278. #else
  279. /* C interface definition for IOPCEventSink */
  280. interface IOPCEventSink
  281.     {
  282.     const IOPCEventSinkVtbl *  lpVtbl;
  283.     };
  284. #endif /* __cplusplus */
  285. EXTERN_C const IID IID_IOPCEventSink;
  286. #ifdef __cplusplus
  287. }
  288. #endif
  289. #endif /* __INCopc_ae_h */