com

package
v0.4.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 9, 2025 License: MIT Imports: 8 Imported by: 11

Documentation

Index

Constants

View Source
const (
	S_OK           = 0x00000000
	E_UNEXPECTED   = 0x8000FFFF
	E_NOTIMPL      = 0x80004001
	E_OUTOFMEMORY  = 0x8007000E
	E_INVALIDARG   = 0x80070057
	E_NOINTERFACE  = 0x80004002
	E_POINTER      = 0x80004003
	E_HANDLE       = 0x80070006
	E_ABORT        = 0x80004004
	E_FAIL         = 0x80004005
	E_ACCESSDENIED = 0x80070005
	E_PENDING      = 0x8000000A

	CO_E_CLASSSTRING = 0x800401F3
)
View Source
const (
	RPC_C_AUTHN_LEVEL_DEFAULT       uint32 = 0
	RPC_C_AUTHN_LEVEL_NONE          uint32 = 1
	RPC_C_AUTHN_LEVEL_CONNECT       uint32 = 2
	RPC_C_AUTHN_LEVEL_CALL          uint32 = 3
	RPC_C_AUTHN_LEVEL_PKT           uint32 = 4
	RPC_C_AUTHN_LEVEL_PKT_INTEGRITY uint32 = 5
	RPC_C_AUTHN_LEVEL_PKT_PRIVACY   uint32 = 6
)

authentication level constants

View Source
const (
	RPC_C_IMP_LEVEL_DEFAULT     uint32 = 0
	RPC_C_IMP_LEVEL_ANONYMOUS   uint32 = 1
	RPC_C_IMP_LEVEL_IDENTIFY    uint32 = 2
	RPC_C_IMP_LEVEL_IMPERSONATE uint32 = 3
	RPC_C_IMP_LEVEL_DELEGATE    uint32 = 4
)

impersonation level constants

View Source
const (
	EOAC_NONE              uint32 = 0
	EOAC_MUTUAL_AUTH       uint32 = 0x1
	EOAC_STATIC_CLOAKING   uint32 = 0x20
	EOAC_DYNAMIC_CLOAKING  uint32 = 0x40
	EOAC_ANY_AUTHORITY     uint32 = 0x80
	EOAC_MAKE_FULLSIC      uint32 = 0x100
	EOAC_DEFAULT           uint32 = 0x800
	EOAC_SECURE_REFS       uint32 = 0x2
	EOAC_ACCESS_CONTROL    uint32 = 0x4
	EOAC_APPID             uint32 = 0x8
	EOAC_DYNAMIC           uint32 = 0x10
	EOAC_REQUIRE_FULLSIC   uint32 = 0x200
	EOAC_AUTO_IMPERSONATE  uint32 = 0x400
	EOAC_DISABLE_AAA       uint32 = 0x1000
	EOAC_NO_CUSTOM_MARSHAL uint32 = 0x2000
	EOAC_RESERVED1         uint32 = 0x4000
)

EOLE_AUTHENTICATION_CAPABILITIES

Variables

View Source
var CLSID_OpcServerList = windows.GUID{
	Data1: 0x13486D51,
	Data2: 0x4821,
	Data3: 0x11D2,
	Data4: [8]byte{0xA4, 0x94, 0x3C, 0xB3, 0x06, 0xC1, 0x00, 0x00},
}
View Source
var IID_IConnectionPointContainer = windows.GUID{
	Data1: 0xB196B284,
	Data2: 0xBAB4,
	Data3: 0x101A,
	Data4: [8]byte{0xB6, 0x9C, 0x00, 0xAA, 0x00, 0x34, 0x1D, 0x07},
}

B196B284-BAB4-101A-B69C-00AA00341D07

View Source
var IID_IOPCAsyncIO2 = windows.GUID{
	Data1: 0x39c13a71,
	Data2: 0x011e,
	Data3: 0x11d0,
	Data4: [8]byte{0x96, 0x75, 0x00, 0x20, 0xaf, 0xd8, 0xad, 0xb3},
}
View Source
var IID_IOPCBrowseServerAddressSpace = windows.GUID{
	Data1: 0x39c13a4f,
	Data2: 0x011e,
	Data3: 0x11d0,
	Data4: [8]byte{0x96, 0x75, 0x00, 0x20, 0xaf, 0xd8, 0xad, 0xb3},
}
View Source
var IID_IOPCCommon = windows.GUID{
	Data1: 0xF31DFDE2,
	Data2: 0x07B6,
	Data3: 0x11d2,
	Data4: [8]byte{0xB2, 0xD8, 0x00, 0x60, 0x08, 0x3B, 0xA1, 0xFB},
}
View Source
var IID_IOPCGroupStateMgt = windows.GUID{
	Data1: 0x39c13a50,
	Data2: 0x011e,
	Data3: 0x11d0,
	Data4: [8]byte{0x96, 0x75, 0x00, 0x20, 0xaf, 0xd8, 0xad, 0xb3},
}
View Source
var IID_IOPCItemMgt = windows.GUID{
	Data1: 0x39c13a54,
	Data2: 0x011e,
	Data3: 0x11d0,
	Data4: [8]byte{0x96, 0x75, 0x00, 0x20, 0xaf, 0xd8, 0xad, 0xb3},
}
View Source
var IID_IOPCItemProperties = windows.GUID{
	Data1: 0x39c13a72,
	Data2: 0x011e,
	Data3: 0x11d0,
	Data4: [8]byte{0x96, 0x75, 0x00, 0x20, 0xaf, 0xd8, 0xad, 0xb3},
}
View Source
var IID_IOPCServer = windows.GUID{
	Data1: 0x39c13a4d,
	Data2: 0x011e,
	Data3: 0x11d0,
	Data4: [8]byte{0x96, 0x75, 0x00, 0x20, 0xaf, 0xd8, 0xad, 0xb3},
}
View Source
var IID_IOPCServerList = windows.GUID{
	Data1: 0x13486D50,
	Data2: 0x4821,
	Data3: 0x11D2,
	Data4: [8]byte{0xA4, 0x94, 0x3C, 0xB3, 0x06, 0xC1, 0x00, 0x00},
}
View Source
var IID_IOPCServerList2 = windows.GUID{
	Data1: 0x9DD0B56C,
	Data2: 0xAD9E,
	Data3: 0x43ee,
	Data4: [8]byte{0x83, 0x05, 0x48, 0x7F, 0x31, 0x88, 0xBF, 0x7A},
}
View Source
var IID_IOPCSyncIO = windows.GUID{
	Data1: 0x39c13a52,
	Data2: 0x011e,
	Data3: 0x11d0,
	Data4: [8]byte{0x96, 0x75, 0x00, 0x20, 0xaf, 0xd8, 0xad, 0xb3},
}
View Source
var IID_IUnknown = &windows.GUID{
	Data1: 0x00000000,
	Data2: 0x0000,
	Data3: 0x0000,
	Data4: [8]byte{0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46},
}

Functions

func BoolToComBOOL added in v0.2.0

func BoolToComBOOL(b bool) int32

func CoCreateInstanceEx

func CoCreateInstanceEx(Clsid *windows.GUID, punkOuter *IUnknown, dwClsCtx CLSCTX, pServerInfo *COSERVERINFO, dwCount uint32, pResults *MULTI_QI) (ret error)

func CoInitializeSecurity added in v0.3.4

func CoInitializeSecurity(authnLevel, impLevel, capabilities uint32) (err error)

func CoTaskMemFree

func CoTaskMemFree(pv unsafe.Pointer)

func Initialize added in v0.2.0

func Initialize() error

Initialize initialize COM with COINIT_MULTITHREADED

func InitializeWithConfig added in v0.4.1

func InitializeWithConfig(config *InitConfig) error

func IsEqualGUID added in v0.2.0

func IsEqualGUID(guid1 *windows.GUID, guid2 *windows.GUID) bool

func IsLocal added in v0.2.0

func IsLocal(host string) bool

func SysAllocStringLen

func SysAllocStringLen(v string) (ss *uint16)

func SysFreeString

func SysFreeString(v *uint16) (err error)

func Uninitialize added in v0.2.0

func Uninitialize()

Uninitialize uninitialize COM

func VariantClear

func VariantClear(pvarg *VARIANT) (err error)

Types

type CLSCTX

type CLSCTX uint32
const (
	CLSCTX_LOCAL_SERVER  CLSCTX = 0x4
	CLSCTX_REMOTE_SERVER CLSCTX = 0x10
)

type COAUTHIDENTITY

type COAUTHIDENTITY struct {
	User           *uint16
	UserLength     uint32
	Domain         *uint16
	DomainLength   uint32
	Password       *uint16
	PasswordLength uint32
	Flags          uint32
}

type COAUTHINFO

type COAUTHINFO struct {
	DwAuthnSvc           uint32
	DwAuthzSvc           uint32
	PwszServerPrincName  *uint16
	DwAuthnLevel         uint32
	DwImpersonationLevel uint32
	PAuthIdentityData    *COAUTHIDENTITY
	DwCapabilities       uint32
}

type COSERVERINFO

type COSERVERINFO struct {
	DwReserved1 uint32
	PwszName    *uint16
	PAuthInfo   *COAUTHINFO
	DwReserved2 uint32
}

type IConnectionPoint

type IConnectionPoint struct {
	*IUnknown
}

func (*IConnectionPoint) Advise

func (p *IConnectionPoint) Advise(pUnkSink *IUnknown) (cookie uint32, err error)

func (*IConnectionPoint) Unadvise

func (p *IConnectionPoint) Unadvise(dwCookie uint32) error

func (*IConnectionPoint) Vtbl

type IConnectionPointContainer

type IConnectionPointContainer struct {
	*IUnknown
}

func (*IConnectionPointContainer) FindConnectionPoint

func (c *IConnectionPointContainer) FindConnectionPoint(riid *windows.GUID) (*IConnectionPoint, error)

func (*IConnectionPointContainer) Vtbl

type IConnectionPointContainerVtbl

type IConnectionPointContainerVtbl struct {
	IUnknownVtbl
	EnumConnectionPoints uintptr
	FindConnectionPoint  uintptr
}

type IConnectionPointVtbl

type IConnectionPointVtbl struct {
	IUnknownVtbl
	GetConnectionInterface      uintptr
	GetConnectionPointContainer uintptr
	Advise                      uintptr
	Unadvise                    uintptr
	EnumConnections             uintptr
}

type IEnumGUID

type IEnumGUID struct {
	*IUnknown
}

func (*IEnumGUID) Next

func (ie *IEnumGUID) Next(celt uint32, rgelt *windows.GUID, pceltFetched *uint32) error

func (*IEnumGUID) Vtbl

func (ie *IEnumGUID) Vtbl() *IEnumGUIDVtbl

type IEnumGUIDVtbl

type IEnumGUIDVtbl struct {
	IUnknownVtbl
	Next  uintptr
	Skip  uintptr
	Reset uintptr
	Clone uintptr
}

type IEnumString

type IEnumString struct {
	*IUnknown
}

func (*IEnumString) Next

func (sl *IEnumString) Next(celt uint32) (result []string, err error)

func (*IEnumString) Vtbl

func (sl *IEnumString) Vtbl() *IEnumStringVtbl

type IEnumStringVtbl

type IEnumStringVtbl struct {
	IUnknownVtbl
	Next  uintptr
	Skip  uintptr
	Reset uintptr
	Clone uintptr
}

type IOPCAsyncIO2

type IOPCAsyncIO2 struct {
	*IUnknown
}

func (*IOPCAsyncIO2) Cancel2

func (sl *IOPCAsyncIO2) Cancel2(dwCancelID uint32) (err error)

func (*IOPCAsyncIO2) Read

func (sl *IOPCAsyncIO2) Read(phServer []uint32, dwTransactionID uint32) (pdwCancelID uint32, ppErrors []int32, err error)

func (*IOPCAsyncIO2) Refresh2

func (sl *IOPCAsyncIO2) Refresh2(dwSource OPCDATASOURCE, dwTransactionID uint32) (pdwCancelID uint32, err error)

func (*IOPCAsyncIO2) Vtbl

func (sl *IOPCAsyncIO2) Vtbl() *IOPCAsyncIO2Vtbl

func (*IOPCAsyncIO2) Write

func (sl *IOPCAsyncIO2) Write(phServer []uint32, pItemValues []VARIANT, dwTransactionID uint32) (pdwCancelID uint32, ppErrors []int32, err error)

type IOPCAsyncIO2Vtbl

type IOPCAsyncIO2Vtbl struct {
	IUnknownVtbl
	Read      uintptr
	Write     uintptr
	Refresh2  uintptr
	Cancel2   uintptr
	SetEnable uintptr
	GetEnable uintptr
}

type IOPCBrowseServerAddressSpace

type IOPCBrowseServerAddressSpace struct {
	*IUnknown
}

func (*IOPCBrowseServerAddressSpace) BrowseOPCItemIDs

func (v *IOPCBrowseServerAddressSpace) BrowseOPCItemIDs(dwBrowseFilterType OPCBROWSETYPE, szFilterCriteria string, vtDataTypeFilter uint16, dwAccessRightsFilter uint32) (result []string, err error)

func (*IOPCBrowseServerAddressSpace) ChangeBrowsePosition

func (v *IOPCBrowseServerAddressSpace) ChangeBrowsePosition(dwBrowseDirection OPCBROWSEDIRECTION, szString string) (err error)

func (*IOPCBrowseServerAddressSpace) GetItemID

func (v *IOPCBrowseServerAddressSpace) GetItemID(szItemDataID string) (szItemID string, err error)

func (*IOPCBrowseServerAddressSpace) QueryOrganization

func (v *IOPCBrowseServerAddressSpace) QueryOrganization() (pNameSpaceType OPCNAMESPACETYPE, err error)

func (*IOPCBrowseServerAddressSpace) Vtbl

type IOPCBrowseServerAddressSpaceVtbl

type IOPCBrowseServerAddressSpaceVtbl struct {
	IUnknownVtbl
	QueryOrganization    uintptr
	ChangeBrowsePosition uintptr
	BrowseOPCItemIDs     uintptr
	GetItemID            uintptr
	BrowseAccessPaths    uintptr
}

type IOPCCommon

type IOPCCommon struct {
	*IUnknown
}

func (*IOPCCommon) GetErrorString

func (v *IOPCCommon) GetErrorString(dwError uint32) (str string, err error)

func (*IOPCCommon) GetLocaleID

func (v *IOPCCommon) GetLocaleID() (pdwLcid uint32, err error)

func (*IOPCCommon) QueryAvailableLocaleIDs

func (v *IOPCCommon) QueryAvailableLocaleIDs() (result []uint32, err error)

func (*IOPCCommon) SetClientName

func (v *IOPCCommon) SetClientName(szName string) (err error)

func (*IOPCCommon) SetLocaleID

func (v *IOPCCommon) SetLocaleID(dwLcid uint32) (err error)

func (*IOPCCommon) Vtbl

func (v *IOPCCommon) Vtbl() *IOPCCommonVtbl

type IOPCCommonVtbl

type IOPCCommonVtbl struct {
	IUnknownVtbl
	SetLocaleID             uintptr
	GetLocaleID             uintptr
	QueryAvailableLocaleIDs uintptr
	GetErrorString          uintptr
	SetClientName           uintptr
}

type IOPCGroupStateMgt

type IOPCGroupStateMgt struct {
	*IUnknown
}

func (*IOPCGroupStateMgt) GetState

func (sl *IOPCGroupStateMgt) GetState() (pUpdateRate uint32, pActive bool, ppName string, pTimeBias int32, pPercentDeadband float32, pLCID uint32, phClientGroup uint32, phServerGroup uint32, err error)

func (*IOPCGroupStateMgt) SetName

func (sl *IOPCGroupStateMgt) SetName(szName string) error

func (*IOPCGroupStateMgt) SetState

func (sl *IOPCGroupStateMgt) SetState(requestedUpdateRate *uint32, pActive *int32, pTimeBias *int32, pPercentDeadband *float32, pLCID *uint32, phClientGroup *uint32) (pRevisedUpdateRate uint32, err error)

func (*IOPCGroupStateMgt) Vtbl

type IOPCGroupStateMgtVtbl

type IOPCGroupStateMgtVtbl struct {
	IUnknownVtbl
	GetState   uintptr
	SetState   uintptr
	SetName    uintptr
	CloneGroup uintptr
}

type IOPCItemMgt

type IOPCItemMgt struct {
	*IUnknown
}

func (*IOPCItemMgt) AddItems

func (sl *IOPCItemMgt) AddItems(items []TagOPCITEMDEF) ([]TagOPCITEMRESULTStruct, []int32, error)

func (*IOPCItemMgt) RemoveItems

func (sl *IOPCItemMgt) RemoveItems(phServer []uint32) ([]int32, error)

func (*IOPCItemMgt) SetActiveState

func (sl *IOPCItemMgt) SetActiveState(phServer []uint32, bActive bool) ([]int32, error)

func (*IOPCItemMgt) SetClientHandles

func (sl *IOPCItemMgt) SetClientHandles(phServer []uint32, phClient []uint32) ([]int32, error)

func (*IOPCItemMgt) SetDatatypes

func (sl *IOPCItemMgt) SetDatatypes(phServer []uint32, pRequestedDatatypes []VT) ([]int32, error)

func (*IOPCItemMgt) ValidateItems

func (sl *IOPCItemMgt) ValidateItems(items []TagOPCITEMDEF, bBlobUpdate bool) ([]TagOPCITEMRESULTStruct, []int32, error)

func (*IOPCItemMgt) Vtbl

func (sl *IOPCItemMgt) Vtbl() *IOPCItemMgtVtbl

type IOPCItemMgtVtbl

type IOPCItemMgtVtbl struct {
	IUnknownVtbl
	AddItems         uintptr
	ValidateItems    uintptr
	RemoveItems      uintptr
	SetActiveState   uintptr
	SetClientHandles uintptr
	SetDatatypes     uintptr
	CreateEnumerator uintptr
}

type IOPCItemProperties

type IOPCItemProperties struct {
	*IUnknown
}

func (*IOPCItemProperties) GetItemProperties

func (v *IOPCItemProperties) GetItemProperties(szItemID string, propertyIDs []uint32) (ppvData []interface{}, ppErrors []int32, err error)

func (*IOPCItemProperties) LookupItemIDs

func (v *IOPCItemProperties) LookupItemIDs(szItemID string, propertyIDs []uint32) (ppszNewItemIDs []string, ppErrors []int32, err error)

func (*IOPCItemProperties) QueryAvailableProperties

func (v *IOPCItemProperties) QueryAvailableProperties(szItemID string) (ppPropertyIDs []uint32, ppDescriptions []string, ppvtDataTypes []uint16, err error)

func (*IOPCItemProperties) Vtbl

type IOPCItemPropertiesVtbl

type IOPCItemPropertiesVtbl struct {
	IUnknownVtbl
	QueryAvailableProperties uintptr
	GetItemProperties        uintptr
	LookupItemIDs            uintptr
}

type IOPCServer

type IOPCServer struct {
	*IUnknown
}

func (*IOPCServer) AddGroup

func (v *IOPCServer) AddGroup(
	szName string,
	bActive bool,
	dwRequestedUpdateRate uint32,
	hClientGroup uint32,
	pTimeBias *int32,
	pPercentDeadband *float32,
	dwLCID uint32,
	riid *windows.GUID,
) (phServerGroup uint32, pRevisedUpdateRate uint32, ppUnk *IUnknown, err error)

func (*IOPCServer) GetStatus

func (v *IOPCServer) GetStatus() (status *ServerStatus, err error)

func (*IOPCServer) RemoveGroup

func (v *IOPCServer) RemoveGroup(hServerGroup uint32, bForce bool) (err error)

func (*IOPCServer) Vtbl

func (v *IOPCServer) Vtbl() *IOPCServerVtbl

type IOPCServerList added in v0.4.1

type IOPCServerList struct {
	*IUnknown
}

func (*IOPCServerList) CLSIDFromProgID added in v0.4.1

func (sl *IOPCServerList) CLSIDFromProgID(szProgID string) (*windows.GUID, error)

func (*IOPCServerList) EnumClassesOfCategories added in v0.4.1

func (sl *IOPCServerList) EnumClassesOfCategories(rgcatidImpl []windows.GUID, rgcatidReq []windows.GUID) (ppenumClsid *IEnumGUID, err error)

func (*IOPCServerList) GetClassDetails added in v0.4.1

func (sl *IOPCServerList) GetClassDetails(guid *windows.GUID) (*uint16, *uint16, error)

func (*IOPCServerList) Vtbl added in v0.4.1

func (sl *IOPCServerList) Vtbl() *IOPCServerListVtbl

type IOPCServerList2

type IOPCServerList2 struct {
	*IUnknown
}

func (*IOPCServerList2) CLSIDFromProgID added in v0.2.1

func (sl *IOPCServerList2) CLSIDFromProgID(szProgID string) (*windows.GUID, error)

func (*IOPCServerList2) EnumClassesOfCategories added in v0.3.0

func (sl *IOPCServerList2) EnumClassesOfCategories(rgcatidImpl []windows.GUID, rgcatidReq []windows.GUID) (ppenumClsid *IEnumGUID, err error)

func (*IOPCServerList2) GetClassDetails

func (sl *IOPCServerList2) GetClassDetails(guid *windows.GUID) (*uint16, *uint16, *uint16, error)

func (*IOPCServerList2) Vtbl

func (sl *IOPCServerList2) Vtbl() *IOPCServerListVtbl

type IOPCServerListVtbl

type IOPCServerListVtbl struct {
	IUnknownVtbl
	EnumClassesOfCategories uintptr
	GetClassDetails         uintptr
	CLSIDFromProgID         uintptr
}

type IOPCServerVtbl

type IOPCServerVtbl struct {
	IUnknownVtbl
	AddGroup              uintptr
	GetErrorString        uintptr
	GetGroupByName        uintptr
	GetStatus             uintptr
	RemoveGroup           uintptr
	CreateGroupEnumerator uintptr
}

type IOPCSyncIO

type IOPCSyncIO struct {
	*IUnknown
}

func (*IOPCSyncIO) Read

func (sl *IOPCSyncIO) Read(source OPCDATASOURCE, serverHandles []uint32) ([]*ItemState, []int32, error)

func (*IOPCSyncIO) Vtbl

func (sl *IOPCSyncIO) Vtbl() *IOPCSyncIOVtbl

func (*IOPCSyncIO) Write

func (sl *IOPCSyncIO) Write(serverHandles []uint32, values []VARIANT) ([]int32, error)

type IOPCSyncIOVtbl

type IOPCSyncIOVtbl struct {
	IUnknownVtbl
	Read  uintptr
	Write uintptr
}

type IUnknown

type IUnknown struct {
	LpVtbl *[1024]uintptr
}

func MakeCOMObjectEx added in v0.2.0

func MakeCOMObjectEx(hostname string, serverLocation CLSCTX, requestedClass *windows.GUID, requestedInterface *windows.GUID) (*IUnknown, error)

func (*IUnknown) QueryInterface

func (v *IUnknown) QueryInterface(riid *windows.GUID, ppvObject unsafe.Pointer) (ret error)

QueryInterface HRESULT QueryInterface(

REFIID riid,
void   **ppvObject

);

func (*IUnknown) Release

func (v *IUnknown) Release() uint32

Release ULONG Release();

func (*IUnknown) Vtbl

func (v *IUnknown) Vtbl() *IUnknownVtbl

type IUnknownVtbl

type IUnknownVtbl struct {
	QueryInterface uintptr
	AddRef         uintptr
	Release        uintptr
}

type InitConfig added in v0.4.1

type InitConfig struct {
	AuthLevel    uint32
	ImpLevel     uint32
	Capabilities uint32
}

func DefaultInitConfig added in v0.4.1

func DefaultInitConfig() *InitConfig

type ItemState

type ItemState struct {
	Value        interface{}
	Quality      uint16
	Timestamp    time.Time
	ClientHandle int32
}

type MULTI_QI

type MULTI_QI struct {
	PIID *windows.GUID
	PItf *IUnknown
	Hr   int32 // long
}

type OPCBROWSEDIRECTION

type OPCBROWSEDIRECTION uint32

type OPCBROWSETYPE

type OPCBROWSETYPE uint32

type OPCDATASOURCE

type OPCDATASOURCE int32

type OPCNAMESPACETYPE

type OPCNAMESPACETYPE uint32

type OPCSERVERSTATUS

type OPCSERVERSTATUS struct {
	FtStartTime      windows.Filetime
	FtCurrentTime    windows.Filetime
	FtLastUpdateTime windows.Filetime
	DwServerState    OPCServerState
	DwGroupCount     uint32
	DwBandWidth      uint32
	WMajorVersion    uint16
	WMinorVersion    uint16
	WBuildNumber     uint16
	WReserved        uint16
	SzVendorInfo     *uint16
}

type OPCServerState

type OPCServerState uint32

type SafeArray

type SafeArray struct {
	Dimensions   uint16
	FeaturesFlag uint16
	ElementsSize uint32
	LocksAmount  uint32
	Data         uint32
	Bounds       [16]byte
}

func (*SafeArray) ToValueArray

func (s *SafeArray) ToValueArray() (interface{}, error)

func (*SafeArray) TotalElements

func (s *SafeArray) TotalElements(index uint32) (totalElements int32, err error)

type SafeArrayBound

type SafeArrayBound struct {
	Elements   uint32
	LowerBound int32
}

type ServerStatus

type ServerStatus struct {
	StartTime      time.Time
	CurrentTime    time.Time
	LastUpdateTime time.Time
	ServerState    OPCServerState
	GroupCount     uint32
	BandWidth      uint32
	MajorVersion   uint16
	MinorVersion   uint16
	BuildNumber    uint16
	Reserved       uint16
	VendorInfo     string
}

type TagOPCITEMDEF

type TagOPCITEMDEF struct {
	SzAccessPath *uint16
	SzItemID     *uint16
	BActive      int32
	HClient      uint32
	DwBlobSize   uint32
	PBlob        *byte
	VtRequested  uint16
	WReserved    uint16
}

type TagOPCITEMRESULT

type TagOPCITEMRESULT struct {
	HServer        uint32
	VtCanonical    uint16
	WReserved      uint16
	DwAccessRights uint32
	DwBlobSize     uint32
	PBlob          *byte
}

func (*TagOPCITEMRESULT) CloneToStruct

func (result *TagOPCITEMRESULT) CloneToStruct() TagOPCITEMRESULTStruct

type TagOPCITEMRESULTStruct

type TagOPCITEMRESULTStruct struct {
	Server       uint32
	NativeType   uint16
	AccessRights uint32
	Blob         []byte
}

type TagOPCITEMSTATE

type TagOPCITEMSTATE struct {
	HClient    uint32
	FTimestamp windows.Filetime
	WQuality   uint16
	WReserved  uint16
	VDataValue VARIANT
}

type VARIANT

type VARIANT struct {
	VT VT //  2

	Val int64 // 16
	// contains filtered or unexported fields
}

func (*VARIANT) Clear

func (v *VARIANT) Clear() error

func (*VARIANT) IsArray

func (v *VARIANT) IsArray() bool

func (*VARIANT) Value

func (v *VARIANT) Value() interface{}

type VT

type VT uint16
const (
	VT_EMPTY            VT = 0
	VT_NULL             VT = 1
	VT_I2               VT = 2
	VT_I4               VT = 3
	VT_R4               VT = 4
	VT_R8               VT = 5
	VT_CY               VT = 6
	VT_DATE             VT = 7
	VT_BSTR             VT = 8
	VT_DISPATCH         VT = 9
	VT_ERROR            VT = 10
	VT_BOOL             VT = 11
	VT_VARIANT          VT = 12
	VT_UNKNOWN          VT = 13
	VT_DECIMAL          VT = 14
	VT_I1               VT = 16
	VT_UI1              VT = 17
	VT_UI2              VT = 18
	VT_UI4              VT = 19
	VT_I8               VT = 20
	VT_UI8              VT = 21
	VT_INT              VT = 22
	VT_UINT             VT = 23
	VT_VOID             VT = 24
	VT_HRESULT          VT = 25
	VT_PTR              VT = 26
	VT_SAFEARRAY        VT = 27
	VT_CARRAY           VT = 28
	VT_USERDEFINED      VT = 29
	VT_LPSTR            VT = 30
	VT_LPWSTR           VT = 31
	VT_RECORD           VT = 36
	VT_INT_PTR          VT = 37
	VT_UINT_PTR         VT = 38
	VT_FILETIME         VT = 64
	VT_BLOB             VT = 65
	VT_STREAM           VT = 66
	VT_STORAGE          VT = 67
	VT_STREAMED_OBJECT  VT = 68
	VT_STORED_OBJECT    VT = 69
	VT_BLOB_OBJECT      VT = 70
	VT_CF               VT = 71
	VT_CLSID            VT = 72
	VT_VERSIONED_STREAM VT = 73
	VT_BSTR_BLOB        VT = 0xfff
	VT_VECTOR           VT = 0x1000
	VT_ARRAY            VT = 0x2000
	VT_BYREF            VT = 0x4000
	VT_RESERVED         VT = 0x8000
	VT_ILLEGAL          VT = 0xffff
	VT_ILLEGALMASKED    VT = 0xfff
	VT_TYPEMASK         VT = 0xfff
)

type VariantWrapper

type VariantWrapper struct {
	Variant *VARIANT
	// contains filtered or unexported fields
}

func NewVariant

func NewVariant(val interface{}) (*VariantWrapper, error)

func (*VariantWrapper) Clear

func (vw *VariantWrapper) Clear() error

func (*VariantWrapper) SetValue

func (vw *VariantWrapper) SetValue(val interface{}) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL