// // Code generated by COM Proxy Code Generator. // Changes may cause incorrect behavior and will be lost if the code is // regenerated. // #nullable enable using System.Runtime.InteropServices.ComTypes; using ComInterfaceDispatch = System.Runtime.InteropServices.ComWrappers.ComInterfaceDispatch; using Marshal = System.Runtime.InteropServices.Marshal; using System.Runtime.InteropServices.ComTypes; using System; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using System.IO; namespace CPF.Windows.ComWrapper { internal unsafe static class IStreamVtbl { private const int S_OK = (int)HRESULT.S_OK; public static IntPtr Create(IntPtr fpQueryInterface, IntPtr fpAddRef, IntPtr fpRelease) { IntPtr* vtblRaw = (IntPtr*)RuntimeHelpers.AllocateTypeAssociatedMemory(typeof(IStreamVtbl), IntPtr.Size * 14); vtblRaw[0] = fpQueryInterface; vtblRaw[1] = fpAddRef; vtblRaw[2] = fpRelease; vtblRaw[3] = (IntPtr)(delegate* unmanaged)&Read; vtblRaw[4] = (IntPtr)(delegate* unmanaged)&Write; vtblRaw[5] = (IntPtr)(delegate* unmanaged)&Seek; vtblRaw[6] = (IntPtr)(delegate* unmanaged)&SetSize; vtblRaw[7] = (IntPtr)(delegate* unmanaged)&CopyTo; vtblRaw[8] = (IntPtr)(delegate* unmanaged)&Commit; vtblRaw[9] = (IntPtr)(delegate* unmanaged)&Revert; vtblRaw[10] = (IntPtr)(delegate* unmanaged)&LockRegion; vtblRaw[11] = (IntPtr)(delegate* unmanaged)&UnlockRegion; vtblRaw[12] = (IntPtr)(delegate* unmanaged)&Stat; vtblRaw[13] = (IntPtr)(delegate* unmanaged)&Clone; return (IntPtr)vtblRaw; } [UnmanagedCallersOnly] private static int Read(IntPtr thisPtr, byte* pv, uint cb, uint* pcbRead) { try { IStream inst = ComInterfaceDispatch.GetInstance((ComInterfaceDispatch*)thisPtr); inst.Read(pv, cb, pcbRead); } catch (Exception e) { return e.HResult; } return S_OK; } [UnmanagedCallersOnly] private static int Write(IntPtr thisPtr, byte* pv, uint cb, uint* pcbWritten) { try { IStream inst = ComInterfaceDispatch.GetInstance((ComInterfaceDispatch*)thisPtr); inst.Write(pv, cb, pcbWritten); } catch (Exception e) { return e.HResult; } return S_OK; } [UnmanagedCallersOnly] private static int Seek(IntPtr thisPtr, long dlibMove, SeekOrigin dwOrigin, ulong* plibNewPosition) { try { IStream inst = ComInterfaceDispatch.GetInstance((ComInterfaceDispatch*)thisPtr); inst.Seek(dlibMove, dwOrigin, plibNewPosition); } catch (Exception e) { return e.HResult; } return S_OK; } [UnmanagedCallersOnly] private static int SetSize(IntPtr thisPtr, ulong libNewSize) { try { IStream inst = ComInterfaceDispatch.GetInstance((ComInterfaceDispatch*)thisPtr); inst.SetSize(libNewSize); } catch (Exception e) { return e.HResult; } return S_OK; } [UnmanagedCallersOnly] private static int CopyTo(IntPtr thisPtr, IntPtr pstm, ulong cb, ulong* pcbRead, ulong* pcbWritten) { try { IStream inst = ComInterfaceDispatch.GetInstance((ComInterfaceDispatch*)thisPtr); return (int)inst.CopyTo(pstm, cb, pcbRead, pcbWritten); } catch (Exception e) { return e.HResult; } } [UnmanagedCallersOnly] private static int Commit(IntPtr thisPtr, uint grfCommitFlags) { try { IStream inst = ComInterfaceDispatch.GetInstance((ComInterfaceDispatch*)thisPtr); inst.Commit(grfCommitFlags); } catch (Exception e) { return e.HResult; } return S_OK; } [UnmanagedCallersOnly] private static int Revert(IntPtr thisPtr) { try { IStream inst = ComInterfaceDispatch.GetInstance((ComInterfaceDispatch*)thisPtr); inst.Revert(); } catch (Exception e) { return e.HResult; } return S_OK; } [UnmanagedCallersOnly] private static int LockRegion(IntPtr thisPtr, ulong libOffset, ulong cb, uint dwLockType) { try { IStream inst = ComInterfaceDispatch.GetInstance((ComInterfaceDispatch*)thisPtr); return (int)inst.LockRegion(libOffset, cb, dwLockType); } catch (Exception e) { return e.HResult; } } [UnmanagedCallersOnly] private static int UnlockRegion(IntPtr thisPtr, ulong libOffset, ulong cb, uint dwLockType) { try { IStream inst = ComInterfaceDispatch.GetInstance((ComInterfaceDispatch*)thisPtr); return (int)inst.UnlockRegion(libOffset, cb, dwLockType); } catch (Exception e) { return e.HResult; } } [UnmanagedCallersOnly] private static int Stat(IntPtr thisPtr, STATSTG* pstatstg, STATFLAG grfStatFlag) { try { IStream inst = ComInterfaceDispatch.GetInstance((ComInterfaceDispatch*)thisPtr); inst.Stat(pstatstg, grfStatFlag); } catch (Exception e) { return e.HResult; } return S_OK; } [UnmanagedCallersOnly] private static int Clone(IntPtr thisPtr, IntPtr* ppstm) { try { IStream inst = ComInterfaceDispatch.GetInstance((ComInterfaceDispatch*)thisPtr); return (int)inst.Clone(ppstm); } catch (Exception e) { return e.HResult; } } } }