private void RemoveManagedCallback()
        {
            NativeMethods.Services_RemoveManagedCallbacks();

            ResultCallbacks = null;
            Callbacks       = null;

            nativeCallbackHandle       = null;
            nativeResultCallbackHandle = null;
        }
        private Steam(CultureInfo activeCulture)
        {
            Culture = activeCulture;

            bufferedExceptions = new List<Exception>();

            //keep a handle in this class to delegates so that GC knows not to collect them
            nativeCallbackHandle = NativeCallbacks;
            nativeResultCallbackHandle   = NativeResultCallbacks;
            
            NativeMethods.Services_RegisterManagedCallbacks(nativeCallbackHandle, nativeResultCallbackHandle);
        }
        private Steam(CultureInfo activeCulture)
        {
            Culture = activeCulture;

            bufferedExceptions = new List <Exception>();

            //keep a handle in this class to delegates so that GC knows not to collect them
            nativeCallbackHandle       = NativeCallbacks;
            nativeResultCallbackHandle = NativeResultCallbacks;

            NativeMethods.Services_RegisterManagedCallbacks(nativeCallbackHandle, nativeResultCallbackHandle);
        }
        private void RegisterManagedCallback()
        {
            // TODO Provide a comparer object to avoid boxing
            Callbacks       = new Dictionary <CallbackID, NativeCallback>();
            ResultCallbacks = new Dictionary <ResultID, NativeResultCallback>();

            bufferedExceptions = new List <Exception>();

            NativeCallbacksDelegate       = NativeCallbacks;
            NativeResultCallbacksDelegate = NativeResultCallbacks;

            NativeMethods.Services_RegisterManagedCallbacks(NativeCallbacksDelegate, NativeResultCallbacksDelegate);
        }
        private void RemoveManagedCallback()
        {
            NativeMethods.Services_RemoveManagedCallbacks();

            ResultCallbacks = null;
            Callbacks = null;

            nativeCallbackHandle = null;
            nativeResultCallbackHandle = null;
        }
        private void RegisterManagedCallback()
        {
            // TODO Provide a comparer object to avoid boxing
            Callbacks = new Dictionary<CallbackID, NativeCallback>();
            ResultCallbacks = new Dictionary<ResultID, NativeResultCallback>();
            
            bufferedExceptions = new List<Exception>();

            NativeCallbacksDelegate = NativeCallbacks;
            NativeResultCallbacksDelegate = NativeResultCallbacks;
            
            NativeMethods.Services_RegisterManagedCallbacks(NativeCallbacksDelegate, NativeResultCallbacksDelegate);
        }
 internal static extern void Services_RegisterManagedCallbacks(ManagedCallback callback, ManagedResultCallback resultCallback);