예제 #1
0
        IntPtr ISQLite3Provider.sqlite3_backup_init(IntPtr destDb, string destName, IntPtr sourceDb, string sourceName)
        {
            // TODO null string?
            GCHandle dest_pinned = GCHandle.Alloc(util.to_utf8(destName), GCHandleType.Pinned);
            IntPtr   dest_ptr    = dest_pinned.AddrOfPinnedObject();

            // TODO null string?
            GCHandle source_pinned = GCHandle.Alloc(util.to_utf8(sourceName), GCHandleType.Pinned);
            IntPtr   source_ptr    = source_pinned.AddrOfPinnedObject();

            IntPtr result = new IntPtr(SQLite3RuntimeProvider.sqlite3_backup_init(destDb.ToInt64(), dest_ptr.ToInt64(), sourceDb.ToInt64(), source_ptr.ToInt64()));

            dest_pinned.Free();
            source_pinned.Free();

            return(result);
        }