winbt

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2022 License: BSD-3-Clause Imports: 4 Imported by: 0

Documentation

Overview

Package winbt provides a thin layer over the WinRT Bluetooth interfaces. It is not designed to be used directly by applications: the bluetooth package will wrap the API exposed here in a nice platform-independent way.

You can find the original *.idl and *.h files in a directory like this, after installing the Windows SDK:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.19041.0\winrt

Some helpful articles to understand WinRT at a low level: https://blog.xojo.com/2019/07/02/accessing-windows-runtime-winrt/ https://docs.microsoft.com/en-us/archive/msdn-magazine/2013/august/windows-with-c-the-windows-runtime-application-model https://blog.magnusmontin.net/2017/12/30/minimal-uwp-wrl-xaml-app/ https://yizhang82.dev/what-is-winrt https://www.slideshare.net/goldshtn/deep-dive-into-winrt

Index

Constants

This section is empty.

Variables

View Source
var (
	IID_IBluetoothLEAdvertisementReceivedEventArgs       = ole.NewGUID("27987DDF-E596-41BE-8D43-9E6731D4A913")
	IID_IBluetoothLEAdvertisementWatcherStoppedEventArgs = ole.NewGUID("DD40F84D-E7B9-43E3-9C04-0685D085FD8C")
)

Functions

This section is empty.

Types

type Event

type Event struct {
	ole.IUnknown
	IID      *ole.GUID
	Callback func(*Event, *ole.IInspectable)
	// contains filtered or unexported fields
}

Event implements event handler interfaces (ITypedEventHandler). This is therefore a valid COM object, derived from IUnknown.

func NewEvent

func NewEvent(iid *ole.GUID, callback func(*Event, *ole.IInspectable)) *Event

NewEvent creates a new COM object for event callbacks. The IID must be the IID for a particular event, which is unfortunately not included in the *.idl files but has to be found in the relevant C++/WinRT header files.

type IBluetoothLEAdvertisement

type IBluetoothLEAdvertisement struct {
	ole.IInspectable
}

func (*IBluetoothLEAdvertisement) DataSections

func (v *IBluetoothLEAdvertisement) DataSections() (vector *IVector)

func (*IBluetoothLEAdvertisement) LocalName

func (v *IBluetoothLEAdvertisement) LocalName() string

func (*IBluetoothLEAdvertisement) VTable

type IBluetoothLEAdvertisementDataSection

type IBluetoothLEAdvertisementDataSection struct {
	ole.IInspectable
}

func (*IBluetoothLEAdvertisementDataSection) DataType

func (v *IBluetoothLEAdvertisementDataSection) DataType() (value byte)

func (*IBluetoothLEAdvertisementDataSection) VTable

type IBluetoothLEAdvertisementDataSectionVtbl

type IBluetoothLEAdvertisementDataSectionVtbl struct {
	ole.IInspectableVtbl
	GetDataType uintptr // ([out] [retval] BYTE* value)
	SetDataType uintptr // ([in] BYTE value)
	GetData     uintptr // ([out] [retval] Windows.Storage.Streams.IBuffer** value)
	SetData     uintptr // ([in] Windows.Storage.Streams.IBuffer* value)
}

type IBluetoothLEAdvertisementReceivedEventArgs

type IBluetoothLEAdvertisementReceivedEventArgs struct {
	ole.IInspectable
}

func (*IBluetoothLEAdvertisementReceivedEventArgs) Advertisement

func (v *IBluetoothLEAdvertisementReceivedEventArgs) Advertisement() (advertisement *IBluetoothLEAdvertisement)

func (*IBluetoothLEAdvertisementReceivedEventArgs) BluetoothAddress

func (v *IBluetoothLEAdvertisementReceivedEventArgs) BluetoothAddress() (address uint64)

func (*IBluetoothLEAdvertisementReceivedEventArgs) RawSignalStrengthInDBm

func (v *IBluetoothLEAdvertisementReceivedEventArgs) RawSignalStrengthInDBm() (rssi int16)

func (*IBluetoothLEAdvertisementReceivedEventArgs) VTable

type IBluetoothLEAdvertisementReceivedEventArgsVtbl

type IBluetoothLEAdvertisementReceivedEventArgsVtbl struct {
	ole.IInspectableVtbl
	RawSignalStrengthInDBm uintptr // ([out] [retval] INT16* value);
	BluetoothAddress       uintptr // ([out] [retval] UINT64* value);
	AdvertisementType      uintptr // ([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementType* value);
	Timestamp              uintptr // ([out] [retval] Windows.Foundation.DateTime* value);
	Advertisement          uintptr // ([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisement** value);
}

type IBluetoothLEAdvertisementVtbl

type IBluetoothLEAdvertisementVtbl struct {
	ole.IInspectableVtbl
	GetFlags                       uintptr // ([out] [retval] Windows.Foundation.IReference<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFlags>** value);
	SetFlags                       uintptr // ([in] Windows.Foundation.IReference<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFlags>* value);
	GetLocalName                   uintptr // ([out] [retval] HSTRING* value);
	SetLocalName                   uintptr // ([in] HSTRING value);
	GetServiceUuids                uintptr // ([out] [retval] Windows.Foundation.Collections.IVector<GUID>** value);
	GetManufacturerData            uintptr // ([out] [retval] Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData*>** value);
	GetDataSections                uintptr // ([out] [retval] Windows.Foundation.Collections.IVector<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection*>** value);
	GetManufacturerDataByCompanyId uintptr // ([in] UINT16 companyId, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEManufacturerData*>** dataList);
	GetSectionsByType              uintptr // ([in] BYTE type, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementDataSection*>** sectionList);
}

type IBluetoothLEAdvertisementWatcher

type IBluetoothLEAdvertisementWatcher struct {
	ole.IInspectable
}

func NewBluetoothLEAdvertisementWatcher

func NewBluetoothLEAdvertisementWatcher() (*IBluetoothLEAdvertisementWatcher, error)

func (*IBluetoothLEAdvertisementWatcher) AddReceivedEvent

func (*IBluetoothLEAdvertisementWatcher) AddStoppedEvent

func (*IBluetoothLEAdvertisementWatcher) Start

func (*IBluetoothLEAdvertisementWatcher) Status

func (*IBluetoothLEAdvertisementWatcher) Stop

func (*IBluetoothLEAdvertisementWatcher) VTable

type IBluetoothLEAdvertisementWatcherStoppedEventArgs

type IBluetoothLEAdvertisementWatcherStoppedEventArgs struct {
	ole.IInspectable
}

type IBluetoothLEAdvertisementWatcherVtbl

type IBluetoothLEAdvertisementWatcherVtbl struct {
	ole.IInspectableVtbl
	GetMinSamplingInterval  uintptr // ([out] [retval] Windows.Foundation.TimeSpan* value);
	GetMaxSamplingInterval  uintptr // ([out] [retval] Windows.Foundation.TimeSpan* value);
	GetMinOutOfRangeTimeout uintptr // ([out] [retval] Windows.Foundation.TimeSpan* value);
	GetMaxOutOfRangeTimeout uintptr // ([out] [retval] Windows.Foundation.TimeSpan* value);
	GetStatus               uintptr // ([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcherStatus* value);
	GetScanningMode         uintptr // ([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEScanningMode* value);
	SetScanningMode         uintptr // ([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEScanningMode value);
	GetSignalStrengthFilter uintptr // ([out] [retval] Windows.Devices.Bluetooth.BluetoothSignalStrengthFilter** value);
	SetSignalStrengthFilter uintptr // ([in] Windows.Devices.Bluetooth.BluetoothSignalStrengthFilter* value);
	GetAdvertisementFilter  uintptr // ([out] [retval] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter** value);
	SetAdvertisementFilter  uintptr // ([in] Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementFilter* value);
	Start                   uintptr // ();
	Stop                    uintptr // ();
	AddReceivedEvent        uintptr // ([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher*, Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
	RemoveReceivedEvent     uintptr // ([in] EventRegistrationToken token);
	AddStoppedEvent         uintptr // ([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcher*, Windows.Devices.Bluetooth.Advertisement.BluetoothLEAdvertisementWatcherStoppedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
	RemoveStoppedEvent      uintptr // ([in] EventRegistrationToken token);
}

type IVector

type IVector struct {
	ole.IInspectable
}

func (*IVector) At

func (v *IVector) At(index int) (element unsafe.Pointer)

func (*IVector) Size

func (v *IVector) Size() int

func (*IVector) VTable

func (v *IVector) VTable() *IVectorVtbl

type IVectorVtbl

type IVectorVtbl struct {
	ole.IInspectableVtbl

	// read methods
	GetAt   uintptr // (_In_opt_ unsigned index, _Out_ T_abi *item)
	GetSize uintptr // (_Out_ unsigned *size)
	GetView uintptr // (_Outptr_result_maybenull_ IVectorView<T_logical> **view)
	IndexOf uintptr // (_In_opt_ T_abi value, _Out_ unsigned *index, _Out_ boolean *found)

	// write methods
	SetAt       uintptr // (_In_ unsigned index, _In_opt_ T_abi item)
	InsertAt    uintptr // (_In_ unsigned index, _In_opt_ T_abi item)
	RemoveAt    uintptr // (_In_ unsigned index)
	Append      uintptr // (_In_opt_ T_abi item)
	RemoveAtEnd uintptr // ()
	Clear       uintptr // ()

	// bulk transfer methods
	GetMany    uintptr // (_In_  unsigned startIndex, _In_ unsigned capacity, _Out_writes_to_(capacity,*actual) T_abi *value, _Out_ unsigned *actual)
	ReplaceAll uintptr // (_In_ unsigned count, _In_reads_(count) T_abi *value)
}

type WatcherStatus

type WatcherStatus uint32
const (
	WatcherStatusCreated  WatcherStatus = 0
	WatcherStatusStarted  WatcherStatus = 1
	WatcherStatusStopping WatcherStatus = 2
	WatcherStatusStopped  WatcherStatus = 3
	WatcherStatusAborted  WatcherStatus = 4
)

Jump to

Keyboard shortcuts

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