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); }