示例#1
0
        /// <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);
            }
        }
示例#2
0
        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);