#![allow(non_snake_case, non_camel_case_types)]
use core::ffi::c_ushort;
use crate::os::windows::types::{BOOL, DWORD, HINTERNET, LPCSTR, LPDWORD, LPVOID};
use super::structs::URL_COMPONENTSA;
pub type InternetCrackUrlA_t = unsafe extern "system" fn(
lpszUrl: LPCSTR,
dwUrlLength: DWORD,
dwFlags: DWORD,
lpUrlComponents: *mut URL_COMPONENTSA,
) -> BOOL;
pub type InternetOpenA_t = unsafe extern "system" fn(
lpszAgent: LPCSTR,
dwAccessType: DWORD,
lpszProxy: LPCSTR,
lpszProxyBypass: LPCSTR,
dwFlags: DWORD,
) -> HINTERNET;
pub type InternetConnectA_t = unsafe extern "system" fn(
hInternet: HINTERNET,
lpszServerName: LPCSTR,
nServerPort: c_ushort,
lpszUserName: LPCSTR,
lpszPassword: LPCSTR,
dwService: DWORD,
dwFlags: DWORD,
dwContext: DWORD,
) -> HINTERNET;
pub type InternetSetOptionA_t = unsafe extern "system" fn(
hInternet: HINTERNET,
dwOption: DWORD,
lpBuffer: LPVOID,
dwBufferLength: DWORD,
) -> BOOL;
pub type InternetReadFile_t = unsafe extern "system" fn(
hFile: HINTERNET,
lpBuffer: LPVOID,
dwNumberOfBytesToRead: DWORD,
lpdwNumberOfBytesRead: LPDWORD,
) -> BOOL;
pub type InternetCloseHandle_t = unsafe extern "system" fn(hInternet: HINTERNET) -> BOOL;
pub type InternetQueryDataAvailable_t = unsafe extern "system" fn(
hFile: HINTERNET,
lpdwNumberOfBytesAvailable: LPDWORD,
dwFlags: DWORD,
dwContext: DWORD,
) -> BOOL;
pub type HttpOpenRequestA_t = unsafe extern "system" fn(
hConnect: HINTERNET,
lpszVerb: LPCSTR,
lpszObjectName: LPCSTR,
lpszVersion: LPCSTR,
lpszReferrer: LPCSTR,
lplpszAcceptTypes: *const LPCSTR,
dwFlags: DWORD,
dwContext: DWORD,
) -> HINTERNET;
pub type HttpSendRequestA_t = unsafe extern "system" fn(
hRequest: HINTERNET,
lpszHeaders: LPCSTR,
dwHeadersLength: DWORD,
lpOptional: LPVOID,
dwOptionalLength: DWORD,
) -> BOOL;
pub type HttpQueryInfoA_t = unsafe extern "system" fn(
hRequest: HINTERNET,
dwInfoLevel: DWORD,
lpBuffer: LPVOID,
lpdwBufferLength: LPDWORD,
lpdwIndex: LPDWORD,
) -> BOOL;