/// <summary> /// Register a callback function to be called when a device is added or removed. /// </summary> /// <param name="callback">Callback delegate to be called whenever a device is added or removed</param> /// <remarks> /// Passing a NULL function pointer will disable the callback. /// </remarks> /// <exception cref="HResultException"></exception> public void RegisterDeviceCallback(DeviceCallback callback) { HResult retVal = registerDeviceCallback(callback, new IntPtr()); if (retVal != HResultException.S_OK) { Dictionary <HResult, String> errorsMap = new Dictionary <HResult, String>() { { HResultException.E_HANDLE, "DirectOutput was not initialized." } }; throw new HResultException(retVal, errorsMap); } }
public async Task Handle(UserMessage message, IMessageHandlerContext context) { try { var listDevices = await _repository.GetListDevaces(message.DevaceSerialNumbers); var deviceCallbackMessage = new DeviceCallback(listDevices); await context.Reply(deviceCallbackMessage); } catch (Exception e) { _logger.LogError(e, e.Message); throw; } await Task.CompletedTask; }
public static ReturnValues RegisterDeviceCallback(DeviceCallback pfnCallback) { return((ReturnValues)DirectOutput_RegisterDeviceCallback(pfnCallback, IntPtr.Zero)); }
static extern IntPtr DirectOutput_RegisterDeviceCallback([MarshalAs(UnmanagedType.FunctionPtr)] DeviceCallback pfnCallback, IntPtr pvParam);