Beispiel #1
0
        private static void ReadAsyncCallbackImpl(IntPtr ptr, Result result, IntPtr dataPtr, int dataLen)
        {
            GCHandle         h        = GCHandle.FromIntPtr(ptr);
            ReadAsyncHandler callback = (ReadAsyncHandler)h.Target;

            h.Free();
            byte[] data = new byte[dataLen];
            Marshal.Copy(dataPtr, data, 0, dataLen);
            callback(result, data);
        }
Beispiel #2
0
        /// <summary>
        ///     Reads data asynchronously from the game's allocated save file into a buffer.
        /// </summary>
        /// <param name="name"></param>
        /// <param name="callback"></param>
        public void ReadAsync(string name, ReadAsyncHandler callback)
        {
            GCHandle wrapped = GCHandle.Alloc(callback);

            Methods.ReadAsync(methodsPtr, name, GCHandle.ToIntPtr(wrapped), ReadAsyncCallbackImpl);
        }