예제 #1
0
            public static uint AddRequestTrackingAuthorizationCallback(Action <uint> callback)
            {
                if (callback == null)
                {
                    throw new Exception("Can't add a null callback.");
                }

                if (!_isInitialized)
                {
                    PInvoke.AppTrackingTransparencyManager_SetRequestTrackingAuthorizationCallbackHandler(
                        PInvoke.RequestTrackingAuthorizationCallbackHandler);

                    _isInitialized = true;
                }

                uint usedCallbackId;

                lock (SyncLock)
                {
                    usedCallbackId = ++_callbackId;
                    if (_callbackId >= MaxCallbackId)
                    {
                        _callbackId = InitialCallbackId;
                    }

                    RequestTrackingAuthorizationCallbackDictionary.Add(usedCallbackId, callback);
                }
                return(usedCallbackId);
            }