internal static unsafe OleDbHResult ITransactionAbort(System.IntPtr ptr) { OleDbHResult hr = OleDbHResult.E_UNEXPECTED; ITransactionLocal transactionLocal = null; RuntimeHelpers.PrepareConstrainedRegions(); try { } finally { Guid IID_ITransactionLocal = typeof(ITransactionLocal).GUID; hr = (OleDbHResult)Marshal.QueryInterface(ptr, ref IID_ITransactionLocal, out var pTransaction); if (pTransaction != IntPtr.Zero) { transactionLocal = (ITransactionLocal)Marshal.GetObjectForIUnknown(pTransaction); hr = (OleDbHResult)transactionLocal.Abort(IntPtr.Zero, false, false); Marshal.Release(pTransaction); } } return(hr); }
internal static unsafe OleDbHResult ITransactionCommit(System.IntPtr ptr) { OleDbHResult hr; RuntimeHelpers.PrepareConstrainedRegions(); try { } finally { Guid IID_ITransactionLocal = typeof(ITransactionLocal).GUID; hr = (OleDbHResult)Marshal.QueryInterface(ptr, ref IID_ITransactionLocal, out var pTransaction); if (pTransaction != IntPtr.Zero) { ITransactionLocal transactionLocal = (ITransactionLocal)Marshal.GetObjectForIUnknown(pTransaction); hr = (OleDbHResult)transactionLocal.Commit(false, (uint)XACTTC.XACTTC_SYNC_PHASETWO, 0); Marshal.ReleaseComObject(transactionLocal); Marshal.Release(pTransaction); } } return(hr); }