//go:build windows

package yu_deflate

import yu_sys "gogs.qqck.cn/s/tools/sys"

var modlibdeflate yu_sys.Module

var (
	libdeflate_alloc_compressor yu_sys.Address
	libdeflate_free_compressor  yu_sys.Address

	libdeflate_alloc_decompressor yu_sys.Address
	libdeflate_free_decompressor  yu_sys.Address

	libdeflate_zlib_compress    yu_sys.Address
	libdeflate_deflate_compress yu_sys.Address
	libdeflate_gzip_compress    yu_sys.Address

	libdeflate_zlib_decompress_ex    yu_sys.Address
	libdeflate_deflate_decompress_ex yu_sys.Address
	libdeflate_gzip_decompress_ex    yu_sys.Address
)

func loadDLL(path string) {
	modlibdeflate = yu_sys.LoadLibrary(path)
	libdeflate_alloc_compressor = modlibdeflate.GetProcAddress("libdeflate_alloc_compressor")
	libdeflate_free_compressor = modlibdeflate.GetProcAddress("libdeflate_free_compressor")

	libdeflate_alloc_decompressor = modlibdeflate.GetProcAddress("libdeflate_alloc_decompressor")
	libdeflate_free_decompressor = modlibdeflate.GetProcAddress("libdeflate_free_decompressor")

	libdeflate_zlib_compress = modlibdeflate.GetProcAddress("libdeflate_zlib_compress")
	libdeflate_deflate_compress = modlibdeflate.GetProcAddress("libdeflate_deflate_compress")
	libdeflate_gzip_compress = modlibdeflate.GetProcAddress("libdeflate_gzip_compress")

	libdeflate_zlib_decompress_ex = modlibdeflate.GetProcAddress("libdeflate_zlib_decompress_ex")
	libdeflate_deflate_decompress_ex = modlibdeflate.GetProcAddress("libdeflate_deflate_decompress_ex")
	libdeflate_gzip_decompress_ex = modlibdeflate.GetProcAddress("libdeflate_gzip_decompress_ex")
}
