|
|
// NCEvent.h
#ifndef _NCEVENT_H
#define _NCEVENT_H
#ifdef ISP2PDLL
//#define WMIAPI __declspec(dllexport) WINAPI
#define WMIAPI WINAPI
#else
#define WMIAPI __declspec(dllimport) WINAPI
#endif
#ifdef __cplusplus
extern "C" { #endif
typedef enum _tagEVENT_SOURCE_MSG { ESM_START_SENDING_EVENTS, ESM_STOP_SENDING_EVENTS, ESM_NEW_QUERY, ESM_CANCEL_QUERY, ESM_ACCESS_CHECK, } EVENT_SOURCE_MSG;
typedef HRESULT (WINAPI *LPEVENT_SOURCE_CALLBACK)(HANDLE, EVENT_SOURCE_MSG, LPVOID, LPVOID); typedef struct _tagES_ACCESS_CHECK { LPCWSTR szQueryLanguage; LPCWSTR szQuery; DWORD dwSidLen; LPBYTE pSid; } ES_ACCESS_CHECK;
typedef struct _tagES_NEW_QUERY { DWORD dwID; LPCWSTR szQueryLanguage; LPCWSTR szQuery; } ES_NEW_QUERY;
typedef struct _tagES_CANCEL_QUERY { DWORD dwID; } ES_CANCEL_QUERY;
typedef long CIMTYPE;
// Flags for all Create functions
#define WMI_CREATEOBJ_LOCKABLE 1
// Flags for WmiSetAndCommit
#define WMI_SENDCOMMIT_SET_NOT_REQUIRED 1
#define WMI_USE_VA_LIST 2
#ifndef __WbemClient_v1_LIBRARY_DEFINED__
typedef /* [v1_enum] */ enum tag_CIMTYPE_ENUMERATION { CIM_ILLEGAL = 0xfff, CIM_EMPTY = 0, CIM_SINT8 = 16, CIM_UINT8 = 17, CIM_SINT16 = 2, CIM_UINT16 = 18, CIM_SINT32 = 3, CIM_UINT32 = 19, CIM_SINT64 = 20, CIM_UINT64 = 21, CIM_REAL32 = 4, CIM_REAL64 = 5, CIM_BOOLEAN = 11, CIM_STRING = 8, CIM_DATETIME = 101, CIM_REFERENCE = 102, CIM_CHAR16 = 103, CIM_OBJECT = 13, CIM_IUNKNOWN = 104, CIM_FLAG_ARRAY = 0x2000 } CIMTYPE_ENUMERATION; #endif
// Register to send events
HANDLE WMIAPI WmiEventSourceConnect( LPCWSTR szNamespace, LPCWSTR szProviderName, BOOL bBatchSend, DWORD dwBatchBufferSize, DWORD dwMaxSendLatency, LPVOID pUserData, LPEVENT_SOURCE_CALLBACK pCallback);
HANDLE WMIAPI WmiCreateRestrictedConnection( HANDLE hSource, DWORD nQueries, LPCWSTR *szQueries, LPVOID pUserData, LPEVENT_SOURCE_CALLBACK pCallback);
BOOL WMIAPI WmiSetConnectionSecurity( HANDLE hSource, SECURITY_DESCRIPTOR *pSD);
void WMIAPI WmiEventSourceDisconnect( HANDLE hSource);
HANDLE WMIAPI WmiCreateObject( HANDLE hSource, LPCWSTR szClassName, DWORD dwFlags);
HANDLE WMIAPI WmiCreateObjectFromBuffer( HANDLE hSource, DWORD dwFlags, LPVOID pLayoutBuffer, DWORD dwLayoutSize, LPVOID pDataBuffer, DWORD dwDataSize);
BOOL WMIAPI WmiCommitObject( HANDLE hObject);
BOOL WMIAPI WmiResetObject( HANDLE hObject);
BOOL WMIAPI WmiDestroyObject( HANDLE hObject);
HANDLE WMIAPI WmiCreateObjectWithProps( HANDLE hSource, LPCWSTR szEventName, DWORD dwFlags, DWORD nPropertyCount, LPCWSTR *pszPropertyNames, CIMTYPE *pPropertyTypes);
HANDLE WMIAPI WmiCreateObjectWithFormat( HANDLE hSource, LPCWSTR szEventName, DWORD dwFlags, LPCWSTR szFormat);
HANDLE WMIAPI WmiCreateObjectPropSubset( HANDLE hObject, DWORD dwFlags, DWORD nPropertyCount, DWORD *pdwPropIndexes);
BOOL WMIAPI WmiAddObjectProp( HANDLE hObject, LPCWSTR szPropertyName, CIMTYPE type, DWORD *pdwPropIndex);
BOOL WMIAPI WmiSetObjectProp( HANDLE hObject, DWORD dwPropIndex, ...);
BOOL WMIAPI WmiGetObjectProp( HANDLE hObject, DWORD dwPropIndex, LPVOID pData, DWORD dwBufferSize, DWORD *pdwBytesRead);
BOOL WMIAPI WmiSetObjectPropNull( HANDLE hObject, DWORD dwPropIndex);
BOOL WMIAPI WmiSetObjectProps( HANDLE hObject, ...);
BOOL WMIAPI WmiSetAndCommitObject( HANDLE hObject, DWORD dwFlags, ...);
BOOL WMIAPI WmiReportEvent( HANDLE hConnection, LPCWSTR szClassName, LPCWSTR szFormat, ...);
BOOL WMIAPI WmiGetObjectBuffer( HANDLE hObject, LPVOID *ppLayoutBuffer, DWORD *pdwLayoutSize, LPVOID *ppDataBuffer, DWORD *pdwDataSize);
BOOL WMIAPI WmiReportEventBlob( HANDLE hConnection, LPCWSTR szClassName, LPVOID pData, DWORD dwSize);
void WMIAPI WmiLockObject(HANDLE hObject);
void WMIAPI WmiUnlockObject(HANDLE hObject);
HANDLE WMIAPI WmiDuplicateObject( HANDLE hOldObject, HANDLE hNewSource, DWORD dwFlags);
BOOL WMIAPI WmiIsObjectActive(HANDLE hObject);
BOOL WMIAPI WmiSetObjectSecurity( HANDLE hObject, SECURITY_DESCRIPTOR *pSD);
#ifdef __cplusplus
} #endif
#endif
|