using System; using System.Security; namespace ScreenConnect; [SuppressUnmanagedCodeSecurity] public static class Native { public abstract class libz : NativeLibrarySingleton { public struct z_stream_s { public unsafe byte* next_in; public uint avail_in; public IntPtr total_in; public unsafe byte* next_out; public uint avail_out; public IntPtr total_out; public IntPtr msg; public IntPtr state; public IntPtr zalloc; public IntPtr zfree; public IntPtr opaque; public int data_type; public IntPtr adler; public IntPtr reserved; } public unsafe abstract int deflateInit2_(IntPtr strm, CoderCompressionLevel level, int method, int windowBits, int memLevel, CoderCompressionStrategy strategy, byte* version, int stream_size); public abstract int deflate(IntPtr strm, CoderFlushType flush); public abstract int deflateEnd(IntPtr strm); public unsafe abstract int inflateInit2_(IntPtr strm, int windowBits, byte* version, int stream_size); public abstract int inflate(IntPtr strm, CoderFlushType flush); public abstract int inflateEnd(IntPtr strm); } public abstract class libzstd : NativeLibrarySingleton { public struct ZSTD_Buffer { public IntPtr pData; public IntPtr size; public IntPtr pos; } public enum ZSTD_strategy { ZSTD_fast = 1, ZSTD_dfast, ZSTD_greedy, ZSTD_lazy, ZSTD_lazy2, ZSTD_btlazy2, ZSTD_btopt, ZSTD_btultra, ZSTD_btultra2 } public enum ZSTD_cParameter { ZSTD_c_compressionLevel = 100, ZSTD_c_windowLog = 101, ZSTD_c_hashLog = 102, ZSTD_c_chainLog = 103, ZSTD_c_searchLog = 104, ZSTD_c_minMatch = 105, ZSTD_c_targetLength = 106, ZSTD_c_strategy = 107, ZSTD_c_enableLongDistanceMatching = 160, ZSTD_c_ldmHashLog = 161, ZSTD_c_ldmMinMatch = 162, ZSTD_c_ldmBucketSizeLog = 163, ZSTD_c_ldmHashRateLog = 164, ZSTD_c_contentSizeFlag = 200, ZSTD_c_checksumFlag = 201, ZSTD_c_dictIDFlag = 202, ZSTD_c_nbWorkers = 400, ZSTD_c_jobSize = 401, ZSTD_c_overlapLog = 402, ZSTD_c_experimentalParam1 = 500, ZSTD_c_experimentalParam2 = 10, ZSTD_c_experimentalParam3 = 1000, ZSTD_c_experimentalParam4 = 1001 } public enum ZSTD_dParameter { ZSTD_d_windowLogMax = 100, ZSTD_d_experimentalParam1 = 1000 } public enum ZSTD_EndDirective { ZSTD_e_continue, ZSTD_e_flush, ZSTD_e_end } public enum ZSTD_error { memory_allocation = 64, dstSize_tooSmall = 70, srcSize_wrong = 72, dstBuffer_null = 74, dstBuffer_wrong = 104, srcBuffer_wrong = 105 } public abstract IntPtr ZSTD_createCCtx(); public abstract IntPtr ZSTD_freeCStream(IntPtr cctx); public abstract IntPtr ZSTD_CStreamInSize(); public abstract IntPtr ZSTD_CStreamOutSize(); public abstract IntPtr ZSTD_compressStream2(IntPtr cctx, ref ZSTD_Buffer output, ref ZSTD_Buffer input, ZSTD_EndDirective endOp); public abstract IntPtr ZSTD_CCtx_setParameter(IntPtr cctx, ZSTD_cParameter param, int value); public abstract IntPtr ZSTD_sizeof_CCtx(IntPtr cctx); public abstract IntPtr ZSTD_createDStream(); public abstract IntPtr ZSTD_freeDStream(IntPtr decompressionStream); public abstract IntPtr ZSTD_initDStream(IntPtr decompressionStream); public abstract IntPtr ZSTD_decompressStream(IntPtr decompressionStream, ref ZSTD_Buffer output, ref ZSTD_Buffer input); public abstract IntPtr ZSTD_DStreamInSize(); public abstract IntPtr ZSTD_DStreamOutSize(); public abstract IntPtr ZSTD_DCtx_setParameter(IntPtr decompressionStream, ZSTD_dParameter param, int value); public abstract IntPtr ZSTD_sizeof_DCtx(IntPtr dctx); public abstract bool ZSTD_isError(IntPtr code); public abstract IntPtr ZSTD_getErrorName(IntPtr code); } public abstract class libwebp : NativeLibrarySingleton { public unsafe abstract int WebPEncodeBGRX(byte* bgrx, int width, int height, int stride, float quality, out byte* output); public unsafe abstract void WebPFree(void* ptr); public unsafe abstract byte* WebPDecodeBGRAInto(byte* data, int dataSize, byte* outputBuffer, int outputBufferSize, int outputStride); } }