Skip to content

Instantly share code, notes, and snippets.

@andrewrk
Created February 12, 2018 03:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save andrewrk/100f72d38b626b2d16544bea725bd36d to your computer and use it in GitHub Desktop.
Save andrewrk/100f72d38b626b2d16544bea725bd36d to your computer and use it in GitHub Desktop.
windows.h converted to zig
This file has been truncated, but you can view the full file.
pub const va_list = ?&u8;
pub extern fn __va_start(arg0: ?&(?&u8));
pub const ptrdiff_t = c_longlong;
pub const __vcrt_bool = bool;
pub const wchar_t = c_ushort;
pub extern fn __security_init_cookie();
pub extern fn __security_check_cookie(_StackCookie: usize);
pub extern fn __report_gsfailure(_StackCookie: usize) -> noreturn;
pub extern var __security_cookie: usize;
pub const ExceptionContinueExecution = enum__EXCEPTION_DISPOSITION.ExceptionContinueExecution;
pub const ExceptionContinueSearch = enum__EXCEPTION_DISPOSITION.ExceptionContinueSearch;
pub const ExceptionNestedException = enum__EXCEPTION_DISPOSITION.ExceptionNestedException;
pub const ExceptionCollidedUnwind = enum__EXCEPTION_DISPOSITION.ExceptionCollidedUnwind;
pub const enum__EXCEPTION_DISPOSITION = extern enum {
ExceptionContinueExecution,
ExceptionContinueSearch,
ExceptionNestedException,
ExceptionCollidedUnwind,
};
pub const EXCEPTION_DISPOSITION = enum__EXCEPTION_DISPOSITION;
pub const DWORD = c_ulong;
pub const PVOID = ?&c_void;
pub const ULONG_PTR = c_ulonglong;
pub const struct__EXCEPTION_RECORD = extern struct {
ExceptionCode: DWORD,
ExceptionFlags: DWORD,
ExceptionRecord: ?&struct__EXCEPTION_RECORD,
ExceptionAddress: PVOID,
NumberParameters: DWORD,
ExceptionInformation: [15]ULONG_PTR,
};
pub const DWORD64 = c_ulonglong;
pub const WORD = c_ushort;
pub const struct__CONTEXT = @OpaqueType();
pub const struct__IMAGE_RUNTIME_FUNCTION_ENTRY = @OpaqueType();
pub const PRUNTIME_FUNCTION = ?&struct__IMAGE_RUNTIME_FUNCTION_ENTRY;
pub const PCONTEXT = ?&struct__CONTEXT;
pub const EXCEPTION_ROUTINE = extern fn(?&struct__EXCEPTION_RECORD, PVOID, ?&struct__CONTEXT, PVOID) -> EXCEPTION_DISPOSITION;
pub const PEXCEPTION_ROUTINE = ?&EXCEPTION_ROUTINE;
pub const BYTE = u8;
pub const struct__UNWIND_HISTORY_TABLE_ENTRY = extern struct {
ImageBase: DWORD64,
FunctionEntry: PRUNTIME_FUNCTION,
};
pub const UNWIND_HISTORY_TABLE_ENTRY = struct__UNWIND_HISTORY_TABLE_ENTRY;
pub const struct__UNWIND_HISTORY_TABLE = extern struct {
Count: DWORD,
LocalHint: BYTE,
GlobalHint: BYTE,
Search: BYTE,
Once: BYTE,
LowAddress: DWORD64,
HighAddress: DWORD64,
Entry: [12]UNWIND_HISTORY_TABLE_ENTRY,
};
pub const PUNWIND_HISTORY_TABLE = ?&struct__UNWIND_HISTORY_TABLE;
pub const struct__DISPATCHER_CONTEXT = extern struct {
ControlPc: DWORD64,
ImageBase: DWORD64,
FunctionEntry: PRUNTIME_FUNCTION,
EstablisherFrame: DWORD64,
TargetIp: DWORD64,
ContextRecord: PCONTEXT,
LanguageHandler: PEXCEPTION_ROUTINE,
HandlerData: PVOID,
HistoryTable: PUNWIND_HISTORY_TABLE,
ScopeIndex: DWORD,
Fill0: DWORD,
};
pub extern fn __C_specific_handler(ExceptionRecord: ?&struct__EXCEPTION_RECORD, EstablisherFrame: ?&c_void, ContextRecord: ?&struct__CONTEXT, DispatcherContext: ?&struct__DISPATCHER_CONTEXT) -> EXCEPTION_DISPOSITION;
pub extern fn _exception_code() -> c_ulong;
pub extern fn _exception_info() -> ?&c_void;
pub extern fn _abnormal_termination() -> c_int;
pub const __builtin_va_list = ?&u8;
pub const va_list = __builtin_va_list;
pub const __gnuc_va_list = __builtin_va_list;
pub const ULONG = c_ulong;
pub const PULONG = ?&ULONG;
pub const USHORT = c_ushort;
pub const PUSHORT = ?&USHORT;
pub const UCHAR = u8;
pub const PUCHAR = ?&UCHAR;
pub const PSZ = ?&u8;
pub const BOOL = c_int;
pub const FLOAT = f32;
pub const PFLOAT = ?&FLOAT;
pub const PBOOL = ?&BOOL;
pub const LPBOOL = ?&BOOL;
pub const PBYTE = ?&BYTE;
pub const LPBYTE = ?&BYTE;
pub const PINT = ?&c_int;
pub const LPINT = ?&c_int;
pub const PWORD = ?&WORD;
pub const LPWORD = ?&WORD;
pub const LPLONG = ?&c_long;
pub const PDWORD = ?&DWORD;
pub const LPDWORD = ?&DWORD;
pub const LPVOID = ?&c_void;
pub const LPCVOID = ?&const c_void;
pub const INT = c_int;
pub const UINT = c_uint;
pub const PUINT = ?&c_uint;
pub const __crt_bool = bool;
pub extern fn _invalid_parameter(arg0: ?&const wchar_t, arg1: ?&const wchar_t, arg2: ?&const wchar_t, arg3: c_uint, arg4: usize);
pub extern fn _invalid_parameter_noinfo();
pub extern fn _invalid_parameter_noinfo_noreturn() -> noreturn;
pub extern fn _invoke_watson(arg0: ?&const wchar_t, arg1: ?&const wchar_t, arg2: ?&const wchar_t, arg3: c_uint, arg4: usize) -> noreturn;
pub const errno_t = c_int;
pub const wint_t = c_ushort;
pub const wctype_t = c_ushort;
pub const __time32_t = c_long;
pub const __time64_t = c_longlong;
pub const struct___crt_locale_data_public = extern struct {
_locale_pctype: ?&const c_ushort,
_locale_mb_cur_max: c_int,
_locale_lc_codepage: c_uint,
};
pub const __crt_locale_data_public = struct___crt_locale_data_public;
pub const struct___crt_locale_data = @OpaqueType();
pub const struct___crt_multibyte_data = @OpaqueType();
pub const struct___crt_locale_pointers = extern struct {
locinfo: ?&struct___crt_locale_data,
mbcinfo: ?&struct___crt_multibyte_data,
};
pub const __crt_locale_pointers = struct___crt_locale_pointers;
pub const _locale_t = ?&__crt_locale_pointers;
pub const struct__Mbstatet = extern struct {
_Wchar: c_ulong,
_Byte: c_ushort,
_State: c_ushort,
};
pub const _Mbstatet = struct__Mbstatet;
pub const mbstate_t = _Mbstatet;
pub const time_t = __time64_t;
pub const rsize_t = usize;
pub extern fn __pctype_func() -> ?&const c_ushort;
pub extern fn __pwctype_func() -> ?&const wctype_t;
pub extern fn iswalnum(_C: wint_t) -> c_int;
pub extern fn iswalpha(_C: wint_t) -> c_int;
pub extern fn iswascii(_C: wint_t) -> c_int;
pub extern fn iswblank(_C: wint_t) -> c_int;
pub extern fn iswcntrl(_C: wint_t) -> c_int;
pub extern fn iswdigit(_C: wint_t) -> c_int;
pub extern fn iswgraph(_C: wint_t) -> c_int;
pub extern fn iswlower(_C: wint_t) -> c_int;
pub extern fn iswprint(_C: wint_t) -> c_int;
pub extern fn iswpunct(_C: wint_t) -> c_int;
pub extern fn iswspace(_C: wint_t) -> c_int;
pub extern fn iswupper(_C: wint_t) -> c_int;
pub extern fn iswxdigit(_C: wint_t) -> c_int;
pub extern fn __iswcsymf(_C: wint_t) -> c_int;
pub extern fn __iswcsym(_C: wint_t) -> c_int;
pub extern fn _iswalnum_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn _iswalpha_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn _iswblank_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn _iswcntrl_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn _iswdigit_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn _iswgraph_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn _iswlower_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn _iswprint_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn _iswpunct_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn _iswspace_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn _iswupper_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn _iswxdigit_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn _iswcsymf_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn _iswcsym_l(_C: wint_t, _Locale: _locale_t) -> c_int;
pub extern fn towupper(_C: wint_t) -> wint_t;
pub extern fn towlower(_C: wint_t) -> wint_t;
pub extern fn iswctype(_C: wint_t, _Type: wctype_t) -> c_int;
pub extern fn _towupper_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
pub extern fn _towlower_l(_C: wint_t, _Locale: _locale_t) -> wint_t;
pub extern fn _iswctype_l(_C: wint_t, _Type: wctype_t, _Locale: _locale_t) -> c_int;
pub extern fn isleadbyte(_C: c_int) -> c_int;
pub extern fn _isleadbyte_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn is_wctype(_C: wint_t, _Type: wctype_t) -> c_int;
pub extern fn _isctype(_C: c_int, _Type: c_int) -> c_int;
pub extern fn _isctype_l(_C: c_int, _Type: c_int, _Locale: _locale_t) -> c_int;
pub extern fn isalpha(_C: c_int) -> c_int;
pub extern fn _isalpha_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn isupper(_C: c_int) -> c_int;
pub extern fn _isupper_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn islower(_C: c_int) -> c_int;
pub extern fn _islower_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn isdigit(_C: c_int) -> c_int;
pub extern fn _isdigit_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn isxdigit(_C: c_int) -> c_int;
pub extern fn _isxdigit_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn isspace(_C: c_int) -> c_int;
pub extern fn _isspace_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn ispunct(_C: c_int) -> c_int;
pub extern fn _ispunct_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn isblank(_C: c_int) -> c_int;
pub extern fn _isblank_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn isalnum(_C: c_int) -> c_int;
pub extern fn _isalnum_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn isprint(_C: c_int) -> c_int;
pub extern fn _isprint_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn isgraph(_C: c_int) -> c_int;
pub extern fn _isgraph_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn iscntrl(_C: c_int) -> c_int;
pub extern fn _iscntrl_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn toupper(_C: c_int) -> c_int;
pub extern fn tolower(_C: c_int) -> c_int;
pub extern fn _tolower(_C: c_int) -> c_int;
pub extern fn _tolower_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn _toupper(_C: c_int) -> c_int;
pub extern fn _toupper_l(_C: c_int, _Locale: _locale_t) -> c_int;
pub extern fn __isascii(_C: c_int) -> c_int;
pub extern fn __toascii(_C: c_int) -> c_int;
pub extern fn __iscsymf(_C: c_int) -> c_int;
pub extern fn __iscsym(_C: c_int) -> c_int;
pub extern fn ___mb_cur_max_func() -> c_int;
pub extern fn ___mb_cur_max_l_func(arg0: _locale_t) -> c_int;
pub extern fn _chvalidator(_Ch: c_int, _Mask: c_int) -> c_int;
pub fn __acrt_get_locale_data_prefix(_LocalePointers: ?&const volatile c_void) -> ?&__crt_locale_data_public {
const _TypedLocalePointers: _locale_t = _locale_t(_LocalePointers);
return ?&__crt_locale_data_public((??_TypedLocalePointers).locinfo);
}
pub extern fn _chvalidator_l(arg0: _locale_t, _Ch: c_int, _Mask: c_int) -> c_int;
pub fn _chvalidchk_l(_C: c_int, _Mask: c_int, _Locale: _locale_t) -> c_int {
return _chvalidator_l(_Locale, _C, _Mask);
}
pub fn _ischartype_l(_C: c_int, _Mask: c_int, _Locale: _locale_t) -> c_int {
if (_Locale and ((??__acrt_get_locale_data_prefix(@ptrCast(?&const volatile c_void, _Locale)))._locale_mb_cur_max > 1)) {
return _isctype_l(_C, _Mask, _Locale);
};
return _chvalidchk_l(_C, _Mask, _Locale);
}
pub const POINTER_64_INT = c_ulonglong;
pub const INT8 = i8;
pub const PINT8 = ?&i8;
pub const INT16 = c_short;
pub const PINT16 = ?&c_short;
pub const INT32 = c_int;
pub const PINT32 = ?&c_int;
pub const INT64 = c_longlong;
pub const PINT64 = ?&c_longlong;
pub const UINT8 = u8;
pub const PUINT8 = ?&u8;
pub const UINT16 = c_ushort;
pub const PUINT16 = ?&c_ushort;
pub const UINT32 = c_uint;
pub const PUINT32 = ?&c_uint;
pub const UINT64 = c_ulonglong;
pub const PUINT64 = ?&c_ulonglong;
pub const LONG32 = c_int;
pub const PLONG32 = ?&c_int;
pub const ULONG32 = c_uint;
pub const PULONG32 = ?&c_uint;
pub const DWORD32 = c_uint;
pub const PDWORD32 = ?&c_uint;
pub const INT_PTR = c_longlong;
pub const PINT_PTR = ?&c_longlong;
pub const UINT_PTR = c_ulonglong;
pub const PUINT_PTR = ?&c_ulonglong;
pub const LONG_PTR = c_longlong;
pub const PLONG_PTR = ?&c_longlong;
pub const PULONG_PTR = ?&c_ulonglong;
pub const SHANDLE_PTR = c_longlong;
pub const HANDLE_PTR = c_ulonglong;
pub const UHALF_PTR = c_uint;
pub const PUHALF_PTR = ?&c_uint;
pub const HALF_PTR = c_int;
pub const PHALF_PTR = ?&c_int;
pub fn HandleToULong(h: ?&const c_void) -> c_ulong {
return c_ulong(ULONG_PTR(h));
}
pub fn HandleToLong(h: ?&const c_void) -> c_long {
return c_long(LONG_PTR(h));
}
pub fn ULongToHandle(h: c_ulong) -> ?&c_void {
return ?&c_void(UINT_PTR(h));
}
pub fn LongToHandle(h: c_long) -> ?&c_void {
return ?&c_void(INT_PTR(h));
}
pub fn PtrToUlong(p: ?&const c_void) -> c_ulong {
return c_ulong(ULONG_PTR(p));
}
pub fn PtrToUint(p: ?&const c_void) -> c_uint {
return c_uint(UINT_PTR(p));
}
pub fn PtrToUshort(p: ?&const c_void) -> c_ushort {
return c_ushort(c_ulong(ULONG_PTR(p)));
}
pub fn PtrToLong(p: ?&const c_void) -> c_long {
return c_long(LONG_PTR(p));
}
pub fn PtrToInt(p: ?&const c_void) -> c_int {
return c_int(INT_PTR(p));
}
pub fn PtrToShort(p: ?&const c_void) -> c_short {
return c_short(c_long(LONG_PTR(p)));
}
pub fn IntToPtr(i: c_int) -> ?&c_void {
return ?&c_void(INT_PTR(i));
}
pub fn UIntToPtr(ui: c_uint) -> ?&c_void {
return ?&c_void(UINT_PTR(ui));
}
pub fn LongToPtr(l: c_long) -> ?&c_void {
return ?&c_void(LONG_PTR(l));
}
pub fn ULongToPtr(ul: c_ulong) -> ?&c_void {
return ?&c_void(ULONG_PTR(ul));
}
pub fn Ptr32ToPtr(p: ?&const c_void) -> ?&c_void {
return ?&c_void(ULONG_PTR(c_ulong(p)));
}
pub fn Handle32ToHandle(h: ?&const c_void) -> ?&c_void {
return ?&c_void(LONG_PTR(c_long(h)));
}
pub fn PtrToPtr32(p: ?&const c_void) -> ?&c_void {
return ?&c_void(c_ulong(ULONG_PTR(p)));
}
pub const SIZE_T = ULONG_PTR;
pub const PSIZE_T = ?&ULONG_PTR;
pub const SSIZE_T = LONG_PTR;
pub const PSSIZE_T = ?&LONG_PTR;
pub const DWORD_PTR = ULONG_PTR;
pub const PDWORD_PTR = ?&ULONG_PTR;
pub const LONG64 = c_longlong;
pub const PLONG64 = ?&c_longlong;
pub const ULONG64 = c_ulonglong;
pub const PULONG64 = ?&c_ulonglong;
pub const PDWORD64 = ?&c_ulonglong;
pub const KAFFINITY = ULONG_PTR;
pub const PKAFFINITY = ?&KAFFINITY;
pub const PVOID64 = ?&c_void;
pub const CHAR = u8;
pub const SHORT = c_short;
pub const LONG = c_long;
pub const INT = c_int;
pub const WCHAR = wchar_t;
pub const PWCHAR = ?&WCHAR;
pub const LPWCH = ?&WCHAR;
pub const PWCH = ?&WCHAR;
pub const LPCWCH = ?&const WCHAR;
pub const PCWCH = ?&const WCHAR;
pub const NWPSTR = ?&WCHAR;
pub const LPWSTR = ?&WCHAR;
pub const PWSTR = ?&WCHAR;
pub const PZPWSTR = ?&PWSTR;
pub const PCZPWSTR = ?&const PWSTR;
pub const LPUWSTR = ?&WCHAR;
pub const PUWSTR = ?&WCHAR;
pub const LPCWSTR = ?&const WCHAR;
pub const PCWSTR = ?&const WCHAR;
pub const PZPCWSTR = ?&PCWSTR;
pub const PCZPCWSTR = ?&const PCWSTR;
pub const LPCUWSTR = ?&const WCHAR;
pub const PCUWSTR = ?&const WCHAR;
pub const PZZWSTR = ?&WCHAR;
pub const PCZZWSTR = ?&const WCHAR;
pub const PUZZWSTR = ?&WCHAR;
pub const PCUZZWSTR = ?&const WCHAR;
pub const PNZWCH = ?&WCHAR;
pub const PCNZWCH = ?&const WCHAR;
pub const PUNZWCH = ?&WCHAR;
pub const PCUNZWCH = ?&const WCHAR;
pub const LPCWCHAR = ?&const WCHAR;
pub const PCWCHAR = ?&const WCHAR;
pub const LPCUWCHAR = ?&const WCHAR;
pub const PCUWCHAR = ?&const WCHAR;
pub const UCSCHAR = c_ulong;
pub const PUCSCHAR = ?&UCSCHAR;
pub const PCUCSCHAR = ?&const UCSCHAR;
pub const PUCSSTR = ?&UCSCHAR;
pub const PUUCSSTR = ?&UCSCHAR;
pub const PCUCSSTR = ?&const UCSCHAR;
pub const PCUUCSSTR = ?&const UCSCHAR;
pub const PUUCSCHAR = ?&UCSCHAR;
pub const PCUUCSCHAR = ?&const UCSCHAR;
pub const PCHAR = ?&CHAR;
pub const LPCH = ?&CHAR;
pub const PCH = ?&CHAR;
pub const LPCCH = ?&const CHAR;
pub const PCCH = ?&const CHAR;
pub const NPSTR = ?&CHAR;
pub const LPSTR = ?&CHAR;
pub const PSTR = ?&CHAR;
pub const PZPSTR = ?&PSTR;
pub const PCZPSTR = ?&const PSTR;
pub const LPCSTR = ?&const CHAR;
pub const PCSTR = ?&const CHAR;
pub const PZPCSTR = ?&PCSTR;
pub const PCZPCSTR = ?&const PCSTR;
pub const PZZSTR = ?&CHAR;
pub const PCZZSTR = ?&const CHAR;
pub const PNZCH = ?&CHAR;
pub const PCNZCH = ?&const CHAR;
pub const TCHAR = u8;
pub const PTCHAR = ?&u8;
pub const TBYTE = u8;
pub const PTBYTE = ?&u8;
pub const LPTCH = LPCH;
pub const PTCH = LPCH;
pub const LPCTCH = LPCCH;
pub const PCTCH = LPCCH;
pub const PTSTR = LPSTR;
pub const LPTSTR = LPSTR;
pub const PUTSTR = LPSTR;
pub const LPUTSTR = LPSTR;
pub const PCTSTR = LPCSTR;
pub const LPCTSTR = LPCSTR;
pub const PCUTSTR = LPCSTR;
pub const LPCUTSTR = LPCSTR;
pub const PZZTSTR = PZZSTR;
pub const PUZZTSTR = PZZSTR;
pub const PCZZTSTR = PCZZSTR;
pub const PCUZZTSTR = PCZZSTR;
pub const PZPTSTR = PZPSTR;
pub const PNZTCH = PNZCH;
pub const PUNZTCH = PNZCH;
pub const PCNZTCH = PCNZCH;
pub const PCUNZTCH = PCNZCH;
pub const PSHORT = ?&SHORT;
pub const PLONG = ?&LONG;
pub const struct__PROCESSOR_NUMBER = extern struct {
Group: WORD,
Number: BYTE,
Reserved: BYTE,
};
pub const PROCESSOR_NUMBER = struct__PROCESSOR_NUMBER;
pub const PPROCESSOR_NUMBER = ?&struct__PROCESSOR_NUMBER;
pub const struct__GROUP_AFFINITY = extern struct {
Mask: KAFFINITY,
Group: WORD,
Reserved: [3]WORD,
};
pub const GROUP_AFFINITY = struct__GROUP_AFFINITY;
pub const PGROUP_AFFINITY = ?&struct__GROUP_AFFINITY;
pub const HANDLE = ?&c_void;
pub const PHANDLE = ?&HANDLE;
pub const FCHAR = BYTE;
pub const FSHORT = WORD;
pub const FLONG = DWORD;
pub const HRESULT = c_long;
pub const CCHAR = u8;
pub const LCID = DWORD;
pub const PLCID = PDWORD;
pub const LANGID = WORD;
pub const UNSPECIFIED_COMPARTMENT_ID: c_int = 0;
pub const DEFAULT_COMPARTMENT_ID: c_int = 1;
pub const COMPARTMENT_ID = c_int;
pub const PCOMPARTMENT_ID = ?&c_int;
pub const struct__FLOAT128 = extern struct {
LowPart: c_longlong,
HighPart: c_longlong,
};
pub const FLOAT128 = struct__FLOAT128;
pub const PFLOAT128 = ?&FLOAT128;
pub const LONGLONG = c_longlong;
pub const ULONGLONG = c_ulonglong;
pub const PLONGLONG = ?&LONGLONG;
pub const PULONGLONG = ?&ULONGLONG;
pub const USN = LONGLONG;
pub const RTL_REFERENCE_COUNT = LONG_PTR;
pub const PRTL_REFERENCE_COUNT = ?&LONG_PTR;
pub const struct__LUID = extern struct {
LowPart: DWORD,
HighPart: LONG,
};
pub const LUID = struct__LUID;
pub const PLUID = ?&struct__LUID;
pub const DWORDLONG = ULONGLONG;
pub const PDWORDLONG = ?&DWORDLONG;
pub extern fn _rotl8(Value: u8, Shift: u8) -> u8;
pub extern fn _rotl16(Value: c_ushort, Shift: u8) -> c_ushort;
pub extern fn _rotr8(Value: u8, Shift: u8) -> u8;
pub extern fn _rotr16(Value: c_ushort, Shift: u8) -> c_ushort;
pub extern fn _rotl(Value: c_uint, Shift: c_int) -> c_uint;
pub extern fn _rotl64(Value: c_ulonglong, Shift: c_int) -> c_ulonglong;
pub extern fn _rotr(Value: c_uint, Shift: c_int) -> c_uint;
pub extern fn _rotr64(Value: c_ulonglong, Shift: c_int) -> c_ulonglong;
pub const BOOLEAN = BYTE;
pub const PBOOLEAN = ?&BOOLEAN;
pub const struct__LIST_ENTRY = extern struct {
Flink: ?&struct__LIST_ENTRY,
Blink: ?&struct__LIST_ENTRY,
};
pub const LIST_ENTRY = struct__LIST_ENTRY;
pub const PLIST_ENTRY = ?&struct__LIST_ENTRY;
pub const PRLIST_ENTRY = ?&struct__LIST_ENTRY;
pub const struct__SINGLE_LIST_ENTRY = extern struct {
Next: ?&struct__SINGLE_LIST_ENTRY,
};
pub const SINGLE_LIST_ENTRY = struct__SINGLE_LIST_ENTRY;
pub const PSINGLE_LIST_ENTRY = ?&struct__SINGLE_LIST_ENTRY;
pub const struct_LIST_ENTRY32 = extern struct {
Flink: DWORD,
Blink: DWORD,
};
pub const LIST_ENTRY32 = struct_LIST_ENTRY32;
pub const PLIST_ENTRY32 = ?&LIST_ENTRY32;
pub const struct_LIST_ENTRY64 = extern struct {
Flink: ULONGLONG,
Blink: ULONGLONG,
};
pub const LIST_ENTRY64 = struct_LIST_ENTRY64;
pub const PLIST_ENTRY64 = ?&LIST_ENTRY64;
pub const struct__GUID = extern struct {
Data1: c_ulong,
Data2: c_ushort,
Data3: c_ushort,
Data4: [8]u8,
};
pub const GUID = struct__GUID;
pub const LPGUID = ?&GUID;
pub const LPCGUID = ?&const GUID;
pub const IID = GUID;
pub const LPIID = ?&IID;
pub const CLSID = GUID;
pub const LPCLSID = ?&CLSID;
pub const FMTID = GUID;
pub const LPFMTID = ?&FMTID;
pub extern fn _errno() -> ?&c_int;
pub extern fn _set_errno(_Value: c_int) -> errno_t;
pub extern fn _get_errno(_Value: ?&c_int) -> errno_t;
pub extern fn __doserrno() -> ?&c_ulong;
pub extern fn _set_doserrno(_Value: c_ulong) -> errno_t;
pub extern fn _get_doserrno(_Value: ?&c_ulong) -> errno_t;
pub extern fn memchr(_Buf: ?&const c_void, _Val: c_int, _MaxCount: c_ulonglong) -> ?&c_void;
pub extern fn memcmp(_Buf1: ?&const c_void, _Buf2: ?&const c_void, _Size: c_ulonglong) -> c_int;
pub extern fn memcpy(_Dst: ?&c_void, _Src: ?&const c_void, _Size: c_ulonglong) -> ?&c_void;
pub extern fn memmove(_Dst: ?&c_void, _Src: ?&const c_void, _Size: c_ulonglong) -> ?&c_void;
pub extern fn memset(_Dst: ?&c_void, _Val: c_int, _Size: c_ulonglong) -> ?&c_void;
pub extern fn strchr(_Str: ?&const u8, _Val: c_int) -> ?&u8;
pub extern fn strrchr(_Str: ?&const u8, _Ch: c_int) -> ?&u8;
pub extern fn strstr(_Str: ?&const u8, _SubStr: ?&const u8) -> ?&u8;
pub extern fn wcschr(_Str: ?&const c_ushort, _Ch: c_ushort) -> ?&c_ushort;
pub extern fn wcsrchr(_Str: ?&const wchar_t, _Ch: wchar_t) -> ?&wchar_t;
pub extern fn wcsstr(_Str: ?&const wchar_t, _SubStr: ?&const wchar_t) -> ?&wchar_t;
pub extern fn _memicmp(_Buf1: ?&const c_void, _Buf2: ?&const c_void, _Size: usize) -> c_int;
pub extern fn _memicmp_l(_Buf1: ?&const c_void, _Buf2: ?&const c_void, _Size: usize, _Locale: _locale_t) -> c_int;
pub extern fn memccpy(_Dst: ?&c_void, _Src: ?&const c_void, _Val: c_int, _Size: usize) -> ?&c_void;
pub extern fn memicmp(_Buf1: ?&const c_void, _Buf2: ?&const c_void, _Size: usize) -> c_int;
pub extern fn wcscat_s(_Destination: ?&wchar_t, _SizeInWords: rsize_t, _Source: ?&const wchar_t) -> errno_t;
pub extern fn wcscpy_s(_Destination: ?&wchar_t, _SizeInWords: rsize_t, _Source: ?&const wchar_t) -> errno_t;
pub extern fn wcsncat_s(_Destination: ?&wchar_t, _SizeInWords: rsize_t, _Source: ?&const wchar_t, _MaxCount: rsize_t) -> errno_t;
pub extern fn wcsncpy_s(_Destination: ?&wchar_t, _SizeInWords: rsize_t, _Source: ?&const wchar_t, _MaxCount: rsize_t) -> errno_t;
pub extern fn wcstok_s(_String: ?&wchar_t, _Delimiter: ?&const wchar_t, _Context: ?&(?&wchar_t)) -> ?&wchar_t;
pub extern fn _wcsdup(_String: ?&const wchar_t) -> ?&wchar_t;
pub extern fn wcscat(_Destination: ?&wchar_t, _Source: ?&const wchar_t) -> ?&wchar_t;
pub extern fn wcscmp(_String1: ?&const c_ushort, _String2: ?&const c_ushort) -> c_int;
pub extern fn wcscpy(_Destination: ?&wchar_t, _Source: ?&const wchar_t) -> ?&wchar_t;
pub extern fn wcscspn(_String: ?&const wchar_t, _Control: ?&const wchar_t) -> usize;
pub extern fn wcslen(_String: ?&const c_ushort) -> c_ulonglong;
pub extern fn wcsnlen(_Source: ?&const wchar_t, _MaxCount: usize) -> usize;
pub extern fn wcsncat(_Destination: ?&wchar_t, _Source: ?&const wchar_t, _Count: usize) -> ?&wchar_t;
pub extern fn wcsncmp(_String1: ?&const c_ushort, _String2: ?&const c_ushort, _MaxCount: c_ulonglong) -> c_int;
pub extern fn wcsncpy(_Destination: ?&wchar_t, _Source: ?&const wchar_t, _Count: usize) -> ?&wchar_t;
pub extern fn wcspbrk(_String: ?&const wchar_t, _Control: ?&const wchar_t) -> ?&wchar_t;
pub extern fn wcsspn(_String: ?&const wchar_t, _Control: ?&const wchar_t) -> usize;
pub extern fn wcstok(_String: ?&wchar_t, _Delimiter: ?&const wchar_t, _Context: ?&(?&wchar_t)) -> ?&wchar_t;
pub extern fn _wcserror(_ErrorNumber: c_int) -> ?&wchar_t;
pub extern fn _wcserror_s(_Buffer: ?&wchar_t, _SizeInWords: usize, _ErrorNumber: c_int) -> errno_t;
pub extern fn __wcserror(_String: ?&const wchar_t) -> ?&wchar_t;
pub extern fn __wcserror_s(_Buffer: ?&wchar_t, _SizeInWords: usize, _ErrorMessage: ?&const wchar_t) -> errno_t;
pub extern fn _wcsicmp(_String1: ?&const wchar_t, _String2: ?&const wchar_t) -> c_int;
pub extern fn _wcsicmp_l(_String1: ?&const wchar_t, _String2: ?&const wchar_t, _Locale: _locale_t) -> c_int;
pub extern fn _wcsnicmp(_String1: ?&const wchar_t, _String2: ?&const wchar_t, _MaxCount: usize) -> c_int;
pub extern fn _wcsnicmp_l(_String1: ?&const wchar_t, _String2: ?&const wchar_t, _MaxCount: usize, _Locale: _locale_t) -> c_int;
pub extern fn _wcsnset_s(_Destination: ?&wchar_t, _SizeInWords: usize, _Value: wchar_t, _MaxCount: usize) -> errno_t;
pub extern fn _wcsnset(_String: ?&wchar_t, _Value: wchar_t, _MaxCount: usize) -> ?&wchar_t;
pub extern fn _wcsrev(_String: ?&wchar_t) -> ?&wchar_t;
pub extern fn _wcsset_s(_Destination: ?&wchar_t, _SizeInWords: usize, _Value: wchar_t) -> errno_t;
pub extern fn _wcsset(_String: ?&wchar_t, _Value: wchar_t) -> ?&wchar_t;
pub extern fn _wcslwr_s(_String: ?&wchar_t, _SizeInWords: usize) -> errno_t;
pub extern fn _wcslwr(_String: ?&wchar_t) -> ?&wchar_t;
pub extern fn _wcslwr_s_l(_String: ?&wchar_t, _SizeInWords: usize, _Locale: _locale_t) -> errno_t;
pub extern fn _wcslwr_l(_String: ?&wchar_t, _Locale: _locale_t) -> ?&wchar_t;
pub extern fn _wcsupr_s(_String: ?&wchar_t, _Size: usize) -> errno_t;
pub extern fn _wcsupr(_String: ?&wchar_t) -> ?&wchar_t;
pub extern fn _wcsupr_s_l(_String: ?&wchar_t, _Size: usize, _Locale: _locale_t) -> errno_t;
pub extern fn _wcsupr_l(_String: ?&wchar_t, _Locale: _locale_t) -> ?&wchar_t;
pub extern fn wcsxfrm(_Destination: ?&wchar_t, _Source: ?&const wchar_t, _MaxCount: usize) -> usize;
pub extern fn _wcsxfrm_l(_Destination: ?&wchar_t, _Source: ?&const wchar_t, _MaxCount: usize, _Locale: _locale_t) -> usize;
pub extern fn wcscoll(_String1: ?&const wchar_t, _String2: ?&const wchar_t) -> c_int;
pub extern fn _wcscoll_l(_String1: ?&const wchar_t, _String2: ?&const wchar_t, _Locale: _locale_t) -> c_int;
pub extern fn _wcsicoll(_String1: ?&const wchar_t, _String2: ?&const wchar_t) -> c_int;
pub extern fn _wcsicoll_l(_String1: ?&const wchar_t, _String2: ?&const wchar_t, _Locale: _locale_t) -> c_int;
pub extern fn _wcsncoll(_String1: ?&const wchar_t, _String2: ?&const wchar_t, _MaxCount: usize) -> c_int;
pub extern fn _wcsncoll_l(_String1: ?&const wchar_t, _String2: ?&const wchar_t, _MaxCount: usize, _Locale: _locale_t) -> c_int;
pub extern fn _wcsnicoll(_String1: ?&const wchar_t, _String2: ?&const wchar_t, _MaxCount: usize) -> c_int;
pub extern fn _wcsnicoll_l(_String1: ?&const wchar_t, _String2: ?&const wchar_t, _MaxCount: usize, _Locale: _locale_t) -> c_int;
pub extern fn wcsdup(_String: ?&const wchar_t) -> ?&wchar_t;
pub extern fn wcsicmp(_String1: ?&const wchar_t, _String2: ?&const wchar_t) -> c_int;
pub extern fn wcsnicmp(_String1: ?&const wchar_t, _String2: ?&const wchar_t, _MaxCount: usize) -> c_int;
pub extern fn wcsnset(_String: ?&wchar_t, _Value: wchar_t, _MaxCount: usize) -> ?&wchar_t;
pub extern fn wcsrev(_String: ?&wchar_t) -> ?&wchar_t;
pub extern fn wcsset(_String: ?&wchar_t, _Value: wchar_t) -> ?&wchar_t;
pub extern fn wcslwr(_String: ?&wchar_t) -> ?&wchar_t;
pub extern fn wcsupr(_String: ?&wchar_t) -> ?&wchar_t;
pub extern fn wcsicoll(_String1: ?&const wchar_t, _String2: ?&const wchar_t) -> c_int;
pub extern fn strcpy_s(_Destination: ?&u8, _SizeInBytes: rsize_t, _Source: ?&const u8) -> errno_t;
pub extern fn strcat_s(_Destination: ?&u8, _SizeInBytes: rsize_t, _Source: ?&const u8) -> errno_t;
pub extern fn strerror_s(_Buffer: ?&u8, _SizeInBytes: usize, _ErrorNumber: c_int) -> errno_t;
pub extern fn strncat_s(_Destination: ?&u8, _SizeInBytes: rsize_t, _Source: ?&const u8, _MaxCount: rsize_t) -> errno_t;
pub extern fn strncpy_s(_Destination: ?&u8, _SizeInBytes: rsize_t, _Source: ?&const u8, _MaxCount: rsize_t) -> errno_t;
pub extern fn strtok_s(_String: ?&u8, _Delimiter: ?&const u8, _Context: ?&(?&u8)) -> ?&u8;
pub extern fn _memccpy(_Dst: ?&c_void, _Src: ?&const c_void, _Val: c_int, _MaxCount: usize) -> ?&c_void;
pub extern fn strcat(_Destination: ?&u8, _Source: ?&const u8) -> ?&u8;
pub extern fn strcmp(_Str1: ?&const u8, _Str2: ?&const u8) -> c_int;
pub extern fn _strcmpi(_String1: ?&const u8, _String2: ?&const u8) -> c_int;
pub extern fn strcoll(_String1: ?&const u8, _String2: ?&const u8) -> c_int;
pub extern fn _strcoll_l(_String1: ?&const u8, _String2: ?&const u8, _Locale: _locale_t) -> c_int;
pub extern fn strcpy(_Dest: ?&u8, _Source: ?&const u8) -> ?&u8;
pub extern fn strcspn(_Str: ?&const u8, _Control: ?&const u8) -> c_ulonglong;
pub extern fn _strdup(_Source: ?&const u8) -> ?&u8;
pub extern fn _strerror(_ErrorMessage: ?&const u8) -> ?&u8;
pub extern fn _strerror_s(_Buffer: ?&u8, _SizeInBytes: usize, _ErrorMessage: ?&const u8) -> errno_t;
pub extern fn strerror(_ErrorMessage: c_int) -> ?&u8;
pub extern fn _stricmp(_String1: ?&const u8, _String2: ?&const u8) -> c_int;
pub extern fn _stricoll(_String1: ?&const u8, _String2: ?&const u8) -> c_int;
pub extern fn _stricoll_l(_String1: ?&const u8, _String2: ?&const u8, _Locale: _locale_t) -> c_int;
pub extern fn _stricmp_l(_String1: ?&const u8, _String2: ?&const u8, _Locale: _locale_t) -> c_int;
pub extern fn strlen(_Str: ?&const u8) -> c_ulonglong;
pub extern fn _strlwr_s(_String: ?&u8, _Size: usize) -> errno_t;
pub extern fn _strlwr(_String: ?&u8) -> ?&u8;
pub extern fn _strlwr_s_l(_String: ?&u8, _Size: usize, _Locale: _locale_t) -> errno_t;
pub extern fn _strlwr_l(_String: ?&u8, _Locale: _locale_t) -> ?&u8;
pub extern fn strncat(_Dest: ?&u8, _Source: ?&const u8, _Count: c_ulonglong) -> ?&u8;
pub extern fn strncmp(_Str1: ?&const u8, _Str2: ?&const u8, _MaxCount: c_ulonglong) -> c_int;
pub extern fn _strnicmp(_String1: ?&const u8, _String2: ?&const u8, _MaxCount: usize) -> c_int;
pub extern fn _strnicmp_l(_String1: ?&const u8, _String2: ?&const u8, _MaxCount: usize, _Locale: _locale_t) -> c_int;
pub extern fn _strnicoll(_String1: ?&const u8, _String2: ?&const u8, _MaxCount: usize) -> c_int;
pub extern fn _strnicoll_l(_String1: ?&const u8, _String2: ?&const u8, _MaxCount: usize, _Locale: _locale_t) -> c_int;
pub extern fn _strncoll(_String1: ?&const u8, _String2: ?&const u8, _MaxCount: usize) -> c_int;
pub extern fn _strncoll_l(_String1: ?&const u8, _String2: ?&const u8, _MaxCount: usize, _Locale: _locale_t) -> c_int;
pub extern fn __strncnt(_String: ?&const u8, _Count: usize) -> usize;
pub extern fn strncpy(_Destination: ?&u8, _Source: ?&const u8, _Count: c_ulonglong) -> ?&u8;
pub extern fn strnlen(_String: ?&const u8, _MaxCount: usize) -> usize;
pub extern fn _strnset(_Dest: ?&u8, _Val: c_int, _Count: usize) -> ?&u8;
pub extern fn _strnset_s(_String: ?&u8, _SizeInBytes: usize, _Value: c_int, _MaxCount: usize) -> errno_t;
pub extern fn strpbrk(_Str: ?&const u8, _Control: ?&const u8) -> ?&u8;
pub extern fn _strrev(_Str: ?&u8) -> ?&u8;
pub extern fn _strset_s(_Destination: ?&u8, _DestinationSize: usize, _Value: c_int) -> errno_t;
pub extern fn _strset(_Destination: ?&u8, _Value: c_int) -> ?&u8;
pub extern fn strspn(_Str: ?&const u8, _Control: ?&const u8) -> c_ulonglong;
pub extern fn strtok(_String: ?&u8, _Delimiter: ?&const u8) -> ?&u8;
pub extern fn _strupr_s(_String: ?&u8, _Size: usize) -> errno_t;
pub extern fn _strupr(_String: ?&u8) -> ?&u8;
pub extern fn _strupr_s_l(_String: ?&u8, _Size: usize, _Locale: _locale_t) -> errno_t;
pub extern fn _strupr_l(_String: ?&u8, _Locale: _locale_t) -> ?&u8;
pub extern fn strxfrm(_Destination: ?&u8, _Source: ?&const u8, _MaxCount: c_ulonglong) -> c_ulonglong;
pub extern fn _strxfrm_l(_Destination: ?&u8, _Source: ?&const u8, _MaxCount: usize, _Locale: _locale_t) -> usize;
pub extern fn strdup(_String: ?&const u8) -> ?&u8;
pub extern fn strcmpi(_String1: ?&const u8, _String2: ?&const u8) -> c_int;
pub extern fn stricmp(_String1: ?&const u8, _String2: ?&const u8) -> c_int;
pub extern fn strlwr(_String: ?&u8) -> ?&u8;
pub extern fn strnicmp(_String1: ?&const u8, _String2: ?&const u8, _MaxCount: usize) -> c_int;
pub extern fn strnset(_String: ?&u8, _Value: c_int, _MaxCount: usize) -> ?&u8;
pub extern fn strrev(_String: ?&u8) -> ?&u8;
pub extern fn strset(_String: ?&u8, _Value: c_int) -> ?&u8;
pub extern fn strupr(_String: ?&u8) -> ?&u8;
pub const struct__OBJECTID = extern struct {
Lineage: GUID,
Uniquifier: DWORD,
};
pub const OBJECTID = struct__OBJECTID;
pub const KSPIN_LOCK = ULONG_PTR;
pub const PKSPIN_LOCK = ?&KSPIN_LOCK;
pub const struct__M128A = extern struct {
Low: ULONGLONG,
High: LONGLONG,
};
pub const M128A = struct__M128A;
pub const PM128A = ?&struct__M128A;
pub const struct__XSAVE_FORMAT = extern struct {
ControlWord: WORD,
StatusWord: WORD,
TagWord: BYTE,
Reserved1: BYTE,
ErrorOpcode: WORD,
ErrorOffset: DWORD,
ErrorSelector: WORD,
Reserved2: WORD,
DataOffset: DWORD,
DataSelector: WORD,
Reserved3: WORD,
MxCsr: DWORD,
MxCsr_Mask: DWORD,
FloatRegisters: [8]M128A,
XmmRegisters: [16]M128A,
Reserved4: [96]BYTE,
};
pub const XSAVE_FORMAT = struct__XSAVE_FORMAT;
pub const PXSAVE_FORMAT = ?&struct__XSAVE_FORMAT;
pub const struct__XSAVE_AREA_HEADER = extern struct {
Mask: DWORD64,
Reserved: [7]DWORD64,
};
pub const XSAVE_AREA_HEADER = struct__XSAVE_AREA_HEADER;
pub const PXSAVE_AREA_HEADER = ?&struct__XSAVE_AREA_HEADER;
pub const struct__XSAVE_AREA = extern struct {
LegacyState: XSAVE_FORMAT,
Header: XSAVE_AREA_HEADER,
};
pub const XSAVE_AREA = struct__XSAVE_AREA;
pub const PXSAVE_AREA = ?&struct__XSAVE_AREA;
pub const struct__XSTATE_CONTEXT = extern struct {
Mask: DWORD64,
Length: DWORD,
Reserved1: DWORD,
Area: PXSAVE_AREA,
Buffer: PVOID,
};
pub const XSTATE_CONTEXT = struct__XSTATE_CONTEXT;
pub const PXSTATE_CONTEXT = ?&struct__XSTATE_CONTEXT;
pub const struct__SCOPE_TABLE_AMD64 = extern struct {
Count: DWORD,
ScopeRecord: [1]extern struct {
BeginAddress: DWORD,
EndAddress: DWORD,
HandlerAddress: DWORD,
JumpTarget: DWORD,
},
};
pub const SCOPE_TABLE_AMD64 = struct__SCOPE_TABLE_AMD64;
pub const PSCOPE_TABLE_AMD64 = ?&struct__SCOPE_TABLE_AMD64;
pub extern fn _bittest(Base: ?&const LONG, Offset: LONG) -> BOOLEAN;
pub extern fn _bittestandcomplement(Base: ?&LONG, Offset: LONG) -> BOOLEAN;
pub extern fn _bittestandset(Base: ?&LONG, Offset: LONG) -> BOOLEAN;
pub extern fn _bittestandreset(Base: ?&LONG, Offset: LONG) -> BOOLEAN;
pub extern fn _interlockedbittestandset(Base: ?&volatile c_long, Offset: c_long) -> u8;
pub extern fn _interlockedbittestandreset(Base: ?&volatile LONG, Offset: LONG) -> BOOLEAN;
pub extern fn _bittest64(Base: ?&const LONG64, Offset: LONG64) -> BOOLEAN;
pub extern fn _bittestandcomplement64(Base: ?&LONG64, Offset: LONG64) -> BOOLEAN;
pub extern fn _bittestandset64(Base: ?&LONG64, Offset: LONG64) -> BOOLEAN;
pub extern fn _bittestandreset64(Base: ?&LONG64, Offset: LONG64) -> BOOLEAN;
pub extern fn _interlockedbittestandset64(Base: ?&volatile LONG64, Offset: LONG64) -> BOOLEAN;
pub extern fn _interlockedbittestandreset64(Base: ?&volatile LONG64, Offset: LONG64) -> BOOLEAN;
pub extern fn _BitScanForward(Index: ?&c_ulong, Mask: c_ulong) -> u8;
pub extern fn _BitScanReverse(Index: ?&c_ulong, Mask: c_ulong) -> u8;
pub extern fn _BitScanForward64(Index: ?&c_ulong, Mask: c_ulonglong) -> u8;
pub extern fn _BitScanReverse64(Index: ?&c_ulong, Mask: c_ulonglong) -> u8;
pub extern fn _InterlockedIncrement16(Addend: ?&volatile c_short) -> c_short;
pub extern fn _InterlockedDecrement16(Addend: ?&volatile c_short) -> c_short;
pub extern fn _InterlockedCompareExchange16(Destination: ?&volatile c_short, ExChange: c_short, Comperand: c_short) -> c_short;
pub extern fn _InterlockedAnd(Destination: ?&volatile c_long, Value: c_long) -> c_long;
pub extern fn _InterlockedOr(Destination: ?&volatile c_long, Value: c_long) -> c_long;
pub extern fn _InterlockedXor(Destination: ?&volatile c_long, Value: c_long) -> c_long;
pub extern fn _InterlockedAnd64(Destination: ?&volatile c_longlong, Value: c_longlong) -> c_longlong;
pub extern fn _InterlockedOr64(Destination: ?&volatile c_longlong, Value: c_longlong) -> c_longlong;
pub extern fn _InterlockedXor64(Destination: ?&volatile c_longlong, Value: c_longlong) -> c_longlong;
pub extern fn _InterlockedIncrement(Addend: ?&volatile c_long) -> c_long;
pub extern fn _InterlockedDecrement(Addend: ?&volatile c_long) -> c_long;
pub extern fn _InterlockedExchange(Target: ?&volatile c_long, Value: c_long) -> c_long;
pub extern fn _InterlockedExchangeAdd(Addend: ?&volatile c_long, Value: c_long) -> c_long;
pub extern fn _InterlockedCompareExchange(Destination: ?&volatile c_long, ExChange: c_long, Comperand: c_long) -> c_long;
pub extern fn _InterlockedIncrement64(Addend: ?&volatile c_longlong) -> c_longlong;
pub extern fn _InterlockedDecrement64(Addend: ?&volatile c_longlong) -> c_longlong;
pub extern fn _InterlockedExchange64(Target: ?&volatile c_longlong, Value: c_longlong) -> c_longlong;
pub extern fn _InterlockedExchangeAdd64(Addend: ?&volatile c_longlong, Value: c_longlong) -> c_longlong;
pub extern fn _InterlockedCompareExchange64(Destination: ?&volatile c_longlong, ExChange: c_longlong, Comperand: c_longlong) -> c_longlong;
pub extern fn _InterlockedCompareExchange128(Destination: ?&volatile LONG64, ExchangeHigh: LONG64, ExchangeLow: LONG64, ComparandResult: ?&LONG64) -> BOOLEAN;
pub extern fn _InterlockedCompareExchangePointer(Destination: ?&volatile (?&c_void), Exchange: ?&c_void, Comperand: ?&c_void) -> ?&c_void;
pub extern fn _InterlockedExchangePointer(Target: ?&volatile (?&c_void), Value: ?&c_void) -> ?&c_void;
pub extern fn _InterlockedExchange8(Target: ?&volatile u8, Value: u8) -> u8;
pub extern fn _InterlockedExchange16(Destination: ?&volatile c_short, ExChange: c_short) -> c_short;
pub extern fn _InterlockedAnd8(Destination: ?&volatile u8, Value: u8) -> u8;
pub extern fn _InterlockedOr8(Destination: ?&volatile u8, Value: u8) -> u8;
pub extern fn _InterlockedXor8(Destination: ?&volatile u8, Value: u8) -> u8;
pub extern fn _InterlockedAnd16(Destination: ?&volatile c_short, Value: c_short) -> c_short;
pub extern fn _InterlockedOr16(Destination: ?&volatile c_short, Value: c_short) -> c_short;
pub extern fn _InterlockedXor16(Destination: ?&volatile c_short, Value: c_short) -> c_short;
pub extern fn __cpuidex(CPUInfo: ?&c_int, Function: c_int, SubLeaf: c_int);
pub extern fn _mm_clflush(Address: ?&const c_void);
pub extern fn _ReadWriteBarrier();
pub extern fn __faststorefence();
pub extern fn _mm_lfence();
pub extern fn _mm_mfence();
pub extern fn _mm_sfence();
pub extern fn _mm_pause();
pub extern fn _mm_prefetch(a: ?&const u8, sel: c_int);
pub extern fn _m_prefetchw(Source: ?&const volatile c_void);
pub extern fn _mm_getcsr() -> c_uint;
pub extern fn _mm_setcsr(MxCsr: c_uint);
pub extern fn __getcallerseflags() -> c_uint;
pub extern fn __segmentlimit(Selector: DWORD) -> DWORD;
pub extern fn __readpmc(Counter: DWORD) -> DWORD64;
pub extern fn __rdtsc() -> c_ulonglong;
pub extern fn __movsb(Destination: PBYTE, Source: ?&const BYTE, Count: SIZE_T);
pub extern fn __movsw(Destination: PWORD, Source: ?&const WORD, Count: SIZE_T);
pub extern fn __movsd(Destination: PDWORD, Source: ?&const DWORD, Count: SIZE_T);
pub extern fn __movsq(Destination: PDWORD64, Source: ?&const DWORD64, Count: SIZE_T);
pub extern fn __stosb(Destination: ?&u8, Value: u8, Count: c_ulonglong);
pub extern fn __stosw(Destination: PWORD, Value: WORD, Count: SIZE_T);
pub extern fn __stosd(Destination: PDWORD, Value: DWORD, Count: SIZE_T);
pub extern fn __stosq(Destination: PDWORD64, Value: DWORD64, Count: SIZE_T);
pub extern fn __mulh(Multiplier: c_longlong, Multiplicand: c_longlong) -> c_longlong;
pub extern fn __umulh(Multiplier: c_ulonglong, Multiplicand: c_ulonglong) -> c_ulonglong;
pub extern fn __popcnt64(operand: c_ulonglong) -> c_ulonglong;
pub extern fn __shiftleft128(LowPart: DWORD64, HighPart: DWORD64, Shift: BYTE) -> DWORD64;
pub extern fn __shiftright128(LowPart: DWORD64, HighPart: DWORD64, Shift: BYTE) -> DWORD64;
pub extern fn _mul128(Multiplier: c_longlong, Multiplicand: c_longlong, HighProduct: ?&c_longlong) -> c_longlong;
pub extern fn _umul128(Multiplier: c_ulonglong, Multiplicand: c_ulonglong, HighProduct: ?&c_ulonglong) -> c_ulonglong;
pub extern fn __readgsbyte(Offset: c_ulong) -> u8;
pub extern fn __readgsword(Offset: c_ulong) -> c_ushort;
pub extern fn __readgsdword(Offset: c_ulong) -> c_ulong;
pub extern fn __readgsqword(Offset: c_ulong) -> c_ulonglong;
pub extern fn __writegsbyte(Offset: DWORD, Data: BYTE);
pub extern fn __writegsword(Offset: DWORD, Data: WORD);
pub extern fn __writegsdword(Offset: DWORD, Data: DWORD);
pub extern fn __writegsqword(Offset: DWORD, Data: DWORD64);
pub extern fn __incgsbyte(Offset: DWORD);
pub extern fn __addgsbyte(Offset: DWORD, Value: BYTE);
pub extern fn __incgsword(Offset: DWORD);
pub extern fn __addgsword(Offset: DWORD, Value: WORD);
pub extern fn __incgsdword(Offset: DWORD);
pub extern fn __addgsdword(Offset: DWORD, Value: DWORD);
pub extern fn __incgsqword(Offset: DWORD);
pub extern fn __addgsqword(Offset: DWORD, Value: DWORD64);
pub const XMM_SAVE_AREA32 = XSAVE_FORMAT;
pub const PXMM_SAVE_AREA32 = ?&XSAVE_FORMAT;
pub const CONTEXT = struct__CONTEXT;
pub const RUNTIME_FUNCTION = struct__IMAGE_RUNTIME_FUNCTION_ENTRY;
pub const SCOPE_TABLE = SCOPE_TABLE_AMD64;
pub const PSCOPE_TABLE = ?&SCOPE_TABLE_AMD64;
pub const PUNWIND_HISTORY_TABLE_ENTRY = ?&struct__UNWIND_HISTORY_TABLE_ENTRY;
pub const UNWIND_HISTORY_TABLE = struct__UNWIND_HISTORY_TABLE;
pub const GET_RUNTIME_FUNCTION_CALLBACK = extern fn(DWORD64, PVOID) -> PRUNTIME_FUNCTION;
pub const PGET_RUNTIME_FUNCTION_CALLBACK = ?&GET_RUNTIME_FUNCTION_CALLBACK;
pub const OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK = extern fn(HANDLE, PVOID, PDWORD, ?&PRUNTIME_FUNCTION) -> DWORD;
pub const POUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK = ?&OUT_OF_PROCESS_FUNCTION_TABLE_CALLBACK;
pub const DISPATCHER_CONTEXT = struct__DISPATCHER_CONTEXT;
pub const PDISPATCHER_CONTEXT = ?&struct__DISPATCHER_CONTEXT;
pub const EXCEPTION_RECORD = struct__EXCEPTION_RECORD;
pub const PEXCEPTION_RECORD = ?&EXCEPTION_RECORD;
pub const struct__EXCEPTION_POINTERS = extern struct {
ExceptionRecord: PEXCEPTION_RECORD,
ContextRecord: PCONTEXT,
};
pub const PEXCEPTION_FILTER = ?extern fn(?&struct__EXCEPTION_POINTERS, PVOID) -> LONG;
pub const PTERMINATION_HANDLER = ?extern fn(BOOLEAN, PVOID);
pub const struct__KNONVOLATILE_CONTEXT_POINTERS = @OpaqueType();
pub const KNONVOLATILE_CONTEXT_POINTERS = struct__KNONVOLATILE_CONTEXT_POINTERS;
pub const PKNONVOLATILE_CONTEXT_POINTERS = ?&struct__KNONVOLATILE_CONTEXT_POINTERS;
pub const struct__SCOPE_TABLE_ARM = extern struct {
Count: DWORD,
ScopeRecord: [1]extern struct {
BeginAddress: DWORD,
EndAddress: DWORD,
HandlerAddress: DWORD,
JumpTarget: DWORD,
},
};
pub const SCOPE_TABLE_ARM = struct__SCOPE_TABLE_ARM;
pub const PSCOPE_TABLE_ARM = ?&struct__SCOPE_TABLE_ARM;
pub extern fn __int2c() -> noreturn;
pub const struct__LDT_ENTRY = @OpaqueType();
pub const LDT_ENTRY = struct__LDT_ENTRY;
pub const PLDT_ENTRY = ?&struct__LDT_ENTRY;
pub fn ReadUCharAcquire(Source: ?&const volatile BYTE) -> BYTE {
return BYTE(ReadAcquire8(@ptrCast(?&const volatile CHAR, PCHAR(Source))));
}
pub fn ReadUCharNoFence(Source: ?&const volatile BYTE) -> BYTE {
return BYTE(ReadNoFence8(@ptrCast(?&const volatile CHAR, PCHAR(Source))));
}
pub fn ReadUCharRaw(Source: ?&const volatile BYTE) -> BYTE {
return BYTE(ReadRaw8(@ptrCast(?&const volatile CHAR, PCHAR(Source))));
}
pub fn ReadUShortAcquire(Source: ?&const volatile WORD) -> WORD {
return WORD(ReadAcquire16(@ptrCast(?&const volatile SHORT, PSHORT(Source))));
}
pub fn ReadUShortNoFence(Source: ?&const volatile WORD) -> WORD {
return WORD(ReadNoFence16(@ptrCast(?&const volatile SHORT, PSHORT(Source))));
}
pub fn ReadUShortRaw(Source: ?&const volatile WORD) -> WORD {
return WORD(ReadRaw16(@ptrCast(?&const volatile SHORT, PSHORT(Source))));
}
pub fn ReadULongAcquire(Source: ?&const volatile DWORD) -> DWORD {
return DWORD(ReadAcquire(@ptrCast(?&const volatile LONG, PLONG(Source))));
}
pub fn ReadULongNoFence(Source: ?&const volatile DWORD) -> DWORD {
return DWORD(ReadNoFence(@ptrCast(?&const volatile LONG, PLONG(Source))));
}
pub fn ReadULongRaw(Source: ?&const volatile DWORD) -> DWORD {
return DWORD(ReadRaw(@ptrCast(?&const volatile LONG, PLONG(Source))));
}
pub fn ReadULong64Acquire(Source: ?&const volatile DWORD64) -> DWORD64 {
return DWORD64(ReadAcquire64(@ptrCast(?&const volatile LONG64, PLONG64(Source))));
}
pub fn ReadULong64NoFence(Source: ?&const volatile DWORD64) -> DWORD64 {
return DWORD64(ReadNoFence64(@ptrCast(?&const volatile LONG64, PLONG64(Source))));
}
pub fn ReadULong64Raw(Source: ?&const volatile DWORD64) -> DWORD64 {
return DWORD64(ReadRaw64(@ptrCast(?&const volatile LONG64, PLONG64(Source))));
}
pub fn ReadPointerAcquire(Source: ?&const volatile PVOID) -> PVOID {
return PVOID(ReadAcquire64(@ptrCast(?&const volatile LONG64, PLONG64(Source))));
}
pub fn ReadPointerNoFence(Source: ?&const volatile PVOID) -> PVOID {
return PVOID(ReadNoFence64(@ptrCast(?&const volatile LONG64, PLONG64(Source))));
}
pub fn ReadPointerRaw(Source: ?&const volatile PVOID) -> PVOID {
return PVOID(ReadRaw64(@ptrCast(?&const volatile LONG64, PLONG64(Source))));
}
pub const struct__WOW64_FLOATING_SAVE_AREA = extern struct {
ControlWord: DWORD,
StatusWord: DWORD,
TagWord: DWORD,
ErrorOffset: DWORD,
ErrorSelector: DWORD,
DataOffset: DWORD,
DataSelector: DWORD,
RegisterArea: [80]BYTE,
Cr0NpxState: DWORD,
};
pub const WOW64_FLOATING_SAVE_AREA = struct__WOW64_FLOATING_SAVE_AREA;
pub const PWOW64_FLOATING_SAVE_AREA = ?&WOW64_FLOATING_SAVE_AREA;
pub const struct__WOW64_CONTEXT = extern struct {
ContextFlags: DWORD,
Dr0: DWORD,
Dr1: DWORD,
Dr2: DWORD,
Dr3: DWORD,
Dr6: DWORD,
Dr7: DWORD,
FloatSave: WOW64_FLOATING_SAVE_AREA,
SegGs: DWORD,
SegFs: DWORD,
SegEs: DWORD,
SegDs: DWORD,
Edi: DWORD,
Esi: DWORD,
Ebx: DWORD,
Edx: DWORD,
Ecx: DWORD,
Eax: DWORD,
Ebp: DWORD,
Eip: DWORD,
SegCs: DWORD,
EFlags: DWORD,
Esp: DWORD,
SegSs: DWORD,
ExtendedRegisters: [512]BYTE,
};
pub const WOW64_CONTEXT = struct__WOW64_CONTEXT;
pub const PWOW64_CONTEXT = ?&WOW64_CONTEXT;
pub const struct__WOW64_LDT_ENTRY = @OpaqueType();
pub const WOW64_LDT_ENTRY = struct__WOW64_LDT_ENTRY;
pub const PWOW64_LDT_ENTRY = ?&struct__WOW64_LDT_ENTRY;
pub const struct__WOW64_DESCRIPTOR_TABLE_ENTRY = extern struct {
Selector: DWORD,
Descriptor: WOW64_LDT_ENTRY,
};
pub const WOW64_DESCRIPTOR_TABLE_ENTRY = struct__WOW64_DESCRIPTOR_TABLE_ENTRY;
pub const PWOW64_DESCRIPTOR_TABLE_ENTRY = ?&struct__WOW64_DESCRIPTOR_TABLE_ENTRY;
pub const struct__EXCEPTION_RECORD32 = extern struct {
ExceptionCode: DWORD,
ExceptionFlags: DWORD,
ExceptionRecord: DWORD,
ExceptionAddress: DWORD,
NumberParameters: DWORD,
ExceptionInformation: [15]DWORD,
};
pub const EXCEPTION_RECORD32 = struct__EXCEPTION_RECORD32;
pub const PEXCEPTION_RECORD32 = ?&struct__EXCEPTION_RECORD32;
pub const struct__EXCEPTION_RECORD64 = extern struct {
ExceptionCode: DWORD,
ExceptionFlags: DWORD,
ExceptionRecord: DWORD64,
ExceptionAddress: DWORD64,
NumberParameters: DWORD,
__unusedAlignment: DWORD,
ExceptionInformation: [15]DWORD64,
};
pub const EXCEPTION_RECORD64 = struct__EXCEPTION_RECORD64;
pub const PEXCEPTION_RECORD64 = ?&struct__EXCEPTION_RECORD64;
pub const EXCEPTION_POINTERS = struct__EXCEPTION_POINTERS;
pub const PEXCEPTION_POINTERS = ?&struct__EXCEPTION_POINTERS;
pub const PACCESS_TOKEN = PVOID;
pub const PSECURITY_DESCRIPTOR = PVOID;
pub const PSID = PVOID;
pub const PCLAIMS_BLOB = PVOID;
pub const ACCESS_MASK = DWORD;
pub const PACCESS_MASK = ?&ACCESS_MASK;
pub const struct__GENERIC_MAPPING = extern struct {
GenericRead: ACCESS_MASK,
GenericWrite: ACCESS_MASK,
GenericExecute: ACCESS_MASK,
GenericAll: ACCESS_MASK,
};
pub const GENERIC_MAPPING = struct__GENERIC_MAPPING;
pub const PGENERIC_MAPPING = ?&GENERIC_MAPPING;
pub const struct__LUID_AND_ATTRIBUTES = extern struct {
Luid: LUID,
Attributes: DWORD,
};
pub const LUID_AND_ATTRIBUTES = struct__LUID_AND_ATTRIBUTES;
pub const PLUID_AND_ATTRIBUTES = ?&struct__LUID_AND_ATTRIBUTES;
pub const LUID_AND_ATTRIBUTES_ARRAY = [1]LUID_AND_ATTRIBUTES;
pub const PLUID_AND_ATTRIBUTES_ARRAY = ?&LUID_AND_ATTRIBUTES_ARRAY;
pub const struct__SID_IDENTIFIER_AUTHORITY = extern struct {
Value: [6]BYTE,
};
pub const SID_IDENTIFIER_AUTHORITY = struct__SID_IDENTIFIER_AUTHORITY;
pub const PSID_IDENTIFIER_AUTHORITY = ?&struct__SID_IDENTIFIER_AUTHORITY;
pub const struct__SID = extern struct {
Revision: BYTE,
SubAuthorityCount: BYTE,
IdentifierAuthority: SID_IDENTIFIER_AUTHORITY,
SubAuthority: [1]DWORD,
};
pub const SID = struct__SID;
pub const PISID = ?&struct__SID;
pub const SidTypeUser: c_int = 1;
pub const SidTypeGroup: c_int = 2;
pub const SidTypeDomain: c_int = 3;
pub const SidTypeAlias: c_int = 4;
pub const SidTypeWellKnownGroup: c_int = 5;
pub const SidTypeDeletedAccount: c_int = 6;
pub const SidTypeInvalid: c_int = 7;
pub const SidTypeUnknown: c_int = 8;
pub const SidTypeComputer: c_int = 9;
pub const SidTypeLabel: c_int = 10;
pub const enum__SID_NAME_USE = c_int;
pub const SidTypeUser: c_int = 1;
pub const SidTypeGroup: c_int = 2;
pub const SidTypeDomain: c_int = 3;
pub const SidTypeAlias: c_int = 4;
pub const SidTypeWellKnownGroup: c_int = 5;
pub const SidTypeDeletedAccount: c_int = 6;
pub const SidTypeInvalid: c_int = 7;
pub const SidTypeUnknown: c_int = 8;
pub const SidTypeComputer: c_int = 9;
pub const SidTypeLabel: c_int = 10;
pub const enum__SID_NAME_USE = c_int;
pub const SID_NAME_USE = enum__SID_NAME_USE;
pub const SidTypeUser: c_int = 1;
pub const SidTypeGroup: c_int = 2;
pub const SidTypeDomain: c_int = 3;
pub const SidTypeAlias: c_int = 4;
pub const SidTypeWellKnownGroup: c_int = 5;
pub const SidTypeDeletedAccount: c_int = 6;
pub const SidTypeInvalid: c_int = 7;
pub const SidTypeUnknown: c_int = 8;
pub const SidTypeComputer: c_int = 9;
pub const SidTypeLabel: c_int = 10;
pub const enum__SID_NAME_USE = c_int;
pub const PSID_NAME_USE = ?&enum__SID_NAME_USE;
pub const struct__SID_AND_ATTRIBUTES = extern struct {
Sid: PSID,
Attributes: DWORD,
};
pub const SID_AND_ATTRIBUTES = struct__SID_AND_ATTRIBUTES;
pub const PSID_AND_ATTRIBUTES = ?&struct__SID_AND_ATTRIBUTES;
pub const SID_AND_ATTRIBUTES_ARRAY = [1]SID_AND_ATTRIBUTES;
pub const PSID_AND_ATTRIBUTES_ARRAY = ?&SID_AND_ATTRIBUTES_ARRAY;
pub const SID_HASH_ENTRY = ULONG_PTR;
pub const PSID_HASH_ENTRY = ?&ULONG_PTR;
pub const struct__SID_AND_ATTRIBUTES_HASH = extern struct {
SidCount: DWORD,
SidAttr: PSID_AND_ATTRIBUTES,
Hash: [32]SID_HASH_ENTRY,
};
pub const SID_AND_ATTRIBUTES_HASH = struct__SID_AND_ATTRIBUTES_HASH;
pub const PSID_AND_ATTRIBUTES_HASH = ?&struct__SID_AND_ATTRIBUTES_HASH;
pub const WinNullSid: c_int = 0;
pub const WinWorldSid: c_int = 1;
pub const WinLocalSid: c_int = 2;
pub const WinCreatorOwnerSid: c_int = 3;
pub const WinCreatorGroupSid: c_int = 4;
pub const WinCreatorOwnerServerSid: c_int = 5;
pub const WinCreatorGroupServerSid: c_int = 6;
pub const WinNtAuthoritySid: c_int = 7;
pub const WinDialupSid: c_int = 8;
pub const WinNetworkSid: c_int = 9;
pub const WinBatchSid: c_int = 10;
pub const WinInteractiveSid: c_int = 11;
pub const WinServiceSid: c_int = 12;
pub const WinAnonymousSid: c_int = 13;
pub const WinProxySid: c_int = 14;
pub const WinEnterpriseControllersSid: c_int = 15;
pub const WinSelfSid: c_int = 16;
pub const WinAuthenticatedUserSid: c_int = 17;
pub const WinRestrictedCodeSid: c_int = 18;
pub const WinTerminalServerSid: c_int = 19;
pub const WinRemoteLogonIdSid: c_int = 20;
pub const WinLogonIdsSid: c_int = 21;
pub const WinLocalSystemSid: c_int = 22;
pub const WinLocalServiceSid: c_int = 23;
pub const WinNetworkServiceSid: c_int = 24;
pub const WinBuiltinDomainSid: c_int = 25;
pub const WinBuiltinAdministratorsSid: c_int = 26;
pub const WinBuiltinUsersSid: c_int = 27;
pub const WinBuiltinGuestsSid: c_int = 28;
pub const WinBuiltinPowerUsersSid: c_int = 29;
pub const WinBuiltinAccountOperatorsSid: c_int = 30;
pub const WinBuiltinSystemOperatorsSid: c_int = 31;
pub const WinBuiltinPrintOperatorsSid: c_int = 32;
pub const WinBuiltinBackupOperatorsSid: c_int = 33;
pub const WinBuiltinReplicatorSid: c_int = 34;
pub const WinBuiltinPreWindows2000CompatibleAccessSid: c_int = 35;
pub const WinBuiltinRemoteDesktopUsersSid: c_int = 36;
pub const WinBuiltinNetworkConfigurationOperatorsSid: c_int = 37;
pub const WinAccountAdministratorSid: c_int = 38;
pub const WinAccountGuestSid: c_int = 39;
pub const WinAccountKrbtgtSid: c_int = 40;
pub const WinAccountDomainAdminsSid: c_int = 41;
pub const WinAccountDomainUsersSid: c_int = 42;
pub const WinAccountDomainGuestsSid: c_int = 43;
pub const WinAccountComputersSid: c_int = 44;
pub const WinAccountControllersSid: c_int = 45;
pub const WinAccountCertAdminsSid: c_int = 46;
pub const WinAccountSchemaAdminsSid: c_int = 47;
pub const WinAccountEnterpriseAdminsSid: c_int = 48;
pub const WinAccountPolicyAdminsSid: c_int = 49;
pub const WinAccountRasAndIasServersSid: c_int = 50;
pub const WinNTLMAuthenticationSid: c_int = 51;
pub const WinDigestAuthenticationSid: c_int = 52;
pub const WinSChannelAuthenticationSid: c_int = 53;
pub const WinThisOrganizationSid: c_int = 54;
pub const WinOtherOrganizationSid: c_int = 55;
pub const WinBuiltinIncomingForestTrustBuildersSid: c_int = 56;
pub const WinBuiltinPerfMonitoringUsersSid: c_int = 57;
pub const WinBuiltinPerfLoggingUsersSid: c_int = 58;
pub const WinBuiltinAuthorizationAccessSid: c_int = 59;
pub const WinBuiltinTerminalServerLicenseServersSid: c_int = 60;
pub const WinBuiltinDCOMUsersSid: c_int = 61;
pub const WinBuiltinIUsersSid: c_int = 62;
pub const WinIUserSid: c_int = 63;
pub const WinBuiltinCryptoOperatorsSid: c_int = 64;
pub const WinUntrustedLabelSid: c_int = 65;
pub const WinLowLabelSid: c_int = 66;
pub const WinMediumLabelSid: c_int = 67;
pub const WinHighLabelSid: c_int = 68;
pub const WinSystemLabelSid: c_int = 69;
pub const WinWriteRestrictedCodeSid: c_int = 70;
pub const WinCreatorOwnerRightsSid: c_int = 71;
pub const WinCacheablePrincipalsGroupSid: c_int = 72;
pub const WinNonCacheablePrincipalsGroupSid: c_int = 73;
pub const WinEnterpriseReadonlyControllersSid: c_int = 74;
pub const WinAccountReadonlyControllersSid: c_int = 75;
pub const WinBuiltinEventLogReadersGroup: c_int = 76;
pub const WinNewEnterpriseReadonlyControllersSid: c_int = 77;
pub const WinBuiltinCertSvcDComAccessGroup: c_int = 78;
pub const WinMediumPlusLabelSid: c_int = 79;
pub const WinLocalLogonSid: c_int = 80;
pub const WinConsoleLogonSid: c_int = 81;
pub const WinThisOrganizationCertificateSid: c_int = 82;
pub const WinApplicationPackageAuthoritySid: c_int = 83;
pub const WinBuiltinAnyPackageSid: c_int = 84;
pub const WinCapabilityInternetClientSid: c_int = 85;
pub const WinCapabilityInternetClientServerSid: c_int = 86;
pub const WinCapabilityPrivateNetworkClientServerSid: c_int = 87;
pub const WinCapabilityPicturesLibrarySid: c_int = 88;
pub const WinCapabilityVideosLibrarySid: c_int = 89;
pub const WinCapabilityMusicLibrarySid: c_int = 90;
pub const WinCapabilityDocumentsLibrarySid: c_int = 91;
pub const WinCapabilitySharedUserCertificatesSid: c_int = 92;
pub const WinCapabilityEnterpriseAuthenticationSid: c_int = 93;
pub const WinCapabilityRemovableStorageSid: c_int = 94;
pub const WinBuiltinRDSRemoteAccessServersSid: c_int = 95;
pub const WinBuiltinRDSEndpointServersSid: c_int = 96;
pub const WinBuiltinRDSManagementServersSid: c_int = 97;
pub const WinUserModeDriversSid: c_int = 98;
pub const WinBuiltinHyperVAdminsSid: c_int = 99;
pub const WinAccountCloneableControllersSid: c_int = 100;
pub const WinBuiltinAccessControlAssistanceOperatorsSid: c_int = 101;
pub const WinBuiltinRemoteManagementUsersSid: c_int = 102;
pub const WinAuthenticationAuthorityAssertedSid: c_int = 103;
pub const WinAuthenticationServiceAssertedSid: c_int = 104;
pub const WinLocalAccountSid: c_int = 105;
pub const WinLocalAccountAndAdministratorSid: c_int = 106;
pub const WinAccountProtectedUsersSid: c_int = 107;
pub const WELL_KNOWN_SID_TYPE = c_int;
pub const struct__ACL = extern struct {
AclRevision: BYTE,
Sbz1: BYTE,
AclSize: WORD,
AceCount: WORD,
Sbz2: WORD,
};
pub const ACL = struct__ACL;
pub const PACL = ?&ACL;
pub const struct__ACE_HEADER = extern struct {
AceType: BYTE,
AceFlags: BYTE,
AceSize: WORD,
};
pub const ACE_HEADER = struct__ACE_HEADER;
pub const PACE_HEADER = ?&ACE_HEADER;
pub const struct__ACCESS_ALLOWED_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
SidStart: DWORD,
};
pub const ACCESS_ALLOWED_ACE = struct__ACCESS_ALLOWED_ACE;
pub const PACCESS_ALLOWED_ACE = ?&ACCESS_ALLOWED_ACE;
pub const struct__ACCESS_DENIED_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
SidStart: DWORD,
};
pub const ACCESS_DENIED_ACE = struct__ACCESS_DENIED_ACE;
pub const PACCESS_DENIED_ACE = ?&ACCESS_DENIED_ACE;
pub const struct__SYSTEM_AUDIT_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
SidStart: DWORD,
};
pub const SYSTEM_AUDIT_ACE = struct__SYSTEM_AUDIT_ACE;
pub const PSYSTEM_AUDIT_ACE = ?&SYSTEM_AUDIT_ACE;
pub const struct__SYSTEM_ALARM_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
SidStart: DWORD,
};
pub const SYSTEM_ALARM_ACE = struct__SYSTEM_ALARM_ACE;
pub const PSYSTEM_ALARM_ACE = ?&SYSTEM_ALARM_ACE;
pub const struct__SYSTEM_RESOURCE_ATTRIBUTE_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
SidStart: DWORD,
};
pub const SYSTEM_RESOURCE_ATTRIBUTE_ACE = struct__SYSTEM_RESOURCE_ATTRIBUTE_ACE;
pub const PSYSTEM_RESOURCE_ATTRIBUTE_ACE = ?&struct__SYSTEM_RESOURCE_ATTRIBUTE_ACE;
pub const struct__SYSTEM_SCOPED_POLICY_ID_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
SidStart: DWORD,
};
pub const SYSTEM_SCOPED_POLICY_ID_ACE = struct__SYSTEM_SCOPED_POLICY_ID_ACE;
pub const PSYSTEM_SCOPED_POLICY_ID_ACE = ?&struct__SYSTEM_SCOPED_POLICY_ID_ACE;
pub const struct__SYSTEM_MANDATORY_LABEL_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
SidStart: DWORD,
};
pub const SYSTEM_MANDATORY_LABEL_ACE = struct__SYSTEM_MANDATORY_LABEL_ACE;
pub const PSYSTEM_MANDATORY_LABEL_ACE = ?&struct__SYSTEM_MANDATORY_LABEL_ACE;
pub const struct__SYSTEM_PROCESS_TRUST_LABEL_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
SidStart: DWORD,
};
pub const SYSTEM_PROCESS_TRUST_LABEL_ACE = struct__SYSTEM_PROCESS_TRUST_LABEL_ACE;
pub const PSYSTEM_PROCESS_TRUST_LABEL_ACE = ?&struct__SYSTEM_PROCESS_TRUST_LABEL_ACE;
pub const struct__ACCESS_ALLOWED_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
Flags: DWORD,
ObjectType: GUID,
InheritedObjectType: GUID,
SidStart: DWORD,
};
pub const ACCESS_ALLOWED_OBJECT_ACE = struct__ACCESS_ALLOWED_OBJECT_ACE;
pub const PACCESS_ALLOWED_OBJECT_ACE = ?&struct__ACCESS_ALLOWED_OBJECT_ACE;
pub const struct__ACCESS_DENIED_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
Flags: DWORD,
ObjectType: GUID,
InheritedObjectType: GUID,
SidStart: DWORD,
};
pub const ACCESS_DENIED_OBJECT_ACE = struct__ACCESS_DENIED_OBJECT_ACE;
pub const PACCESS_DENIED_OBJECT_ACE = ?&struct__ACCESS_DENIED_OBJECT_ACE;
pub const struct__SYSTEM_AUDIT_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
Flags: DWORD,
ObjectType: GUID,
InheritedObjectType: GUID,
SidStart: DWORD,
};
pub const SYSTEM_AUDIT_OBJECT_ACE = struct__SYSTEM_AUDIT_OBJECT_ACE;
pub const PSYSTEM_AUDIT_OBJECT_ACE = ?&struct__SYSTEM_AUDIT_OBJECT_ACE;
pub const struct__SYSTEM_ALARM_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
Flags: DWORD,
ObjectType: GUID,
InheritedObjectType: GUID,
SidStart: DWORD,
};
pub const SYSTEM_ALARM_OBJECT_ACE = struct__SYSTEM_ALARM_OBJECT_ACE;
pub const PSYSTEM_ALARM_OBJECT_ACE = ?&struct__SYSTEM_ALARM_OBJECT_ACE;
pub const struct__ACCESS_ALLOWED_CALLBACK_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
SidStart: DWORD,
};
pub const ACCESS_ALLOWED_CALLBACK_ACE = struct__ACCESS_ALLOWED_CALLBACK_ACE;
pub const PACCESS_ALLOWED_CALLBACK_ACE = ?&struct__ACCESS_ALLOWED_CALLBACK_ACE;
pub const struct__ACCESS_DENIED_CALLBACK_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
SidStart: DWORD,
};
pub const ACCESS_DENIED_CALLBACK_ACE = struct__ACCESS_DENIED_CALLBACK_ACE;
pub const PACCESS_DENIED_CALLBACK_ACE = ?&struct__ACCESS_DENIED_CALLBACK_ACE;
pub const struct__SYSTEM_AUDIT_CALLBACK_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
SidStart: DWORD,
};
pub const SYSTEM_AUDIT_CALLBACK_ACE = struct__SYSTEM_AUDIT_CALLBACK_ACE;
pub const PSYSTEM_AUDIT_CALLBACK_ACE = ?&struct__SYSTEM_AUDIT_CALLBACK_ACE;
pub const struct__SYSTEM_ALARM_CALLBACK_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
SidStart: DWORD,
};
pub const SYSTEM_ALARM_CALLBACK_ACE = struct__SYSTEM_ALARM_CALLBACK_ACE;
pub const PSYSTEM_ALARM_CALLBACK_ACE = ?&struct__SYSTEM_ALARM_CALLBACK_ACE;
pub const struct__ACCESS_ALLOWED_CALLBACK_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
Flags: DWORD,
ObjectType: GUID,
InheritedObjectType: GUID,
SidStart: DWORD,
};
pub const ACCESS_ALLOWED_CALLBACK_OBJECT_ACE = struct__ACCESS_ALLOWED_CALLBACK_OBJECT_ACE;
pub const PACCESS_ALLOWED_CALLBACK_OBJECT_ACE = ?&struct__ACCESS_ALLOWED_CALLBACK_OBJECT_ACE;
pub const struct__ACCESS_DENIED_CALLBACK_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
Flags: DWORD,
ObjectType: GUID,
InheritedObjectType: GUID,
SidStart: DWORD,
};
pub const ACCESS_DENIED_CALLBACK_OBJECT_ACE = struct__ACCESS_DENIED_CALLBACK_OBJECT_ACE;
pub const PACCESS_DENIED_CALLBACK_OBJECT_ACE = ?&struct__ACCESS_DENIED_CALLBACK_OBJECT_ACE;
pub const struct__SYSTEM_AUDIT_CALLBACK_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
Flags: DWORD,
ObjectType: GUID,
InheritedObjectType: GUID,
SidStart: DWORD,
};
pub const SYSTEM_AUDIT_CALLBACK_OBJECT_ACE = struct__SYSTEM_AUDIT_CALLBACK_OBJECT_ACE;
pub const PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE = ?&struct__SYSTEM_AUDIT_CALLBACK_OBJECT_ACE;
pub const struct__SYSTEM_ALARM_CALLBACK_OBJECT_ACE = extern struct {
Header: ACE_HEADER,
Mask: ACCESS_MASK,
Flags: DWORD,
ObjectType: GUID,
InheritedObjectType: GUID,
SidStart: DWORD,
};
pub const SYSTEM_ALARM_CALLBACK_OBJECT_ACE = struct__SYSTEM_ALARM_CALLBACK_OBJECT_ACE;
pub const PSYSTEM_ALARM_CALLBACK_OBJECT_ACE = ?&struct__SYSTEM_ALARM_CALLBACK_OBJECT_ACE;
pub const AclRevisionInformation: c_int = 1;
pub const AclSizeInformation: c_int = 2;
pub const enum__ACL_INFORMATION_CLASS = c_int;
pub const AclRevisionInformation: c_int = 1;
pub const AclSizeInformation: c_int = 2;
pub const enum__ACL_INFORMATION_CLASS = c_int;
pub const ACL_INFORMATION_CLASS = enum__ACL_INFORMATION_CLASS;
pub const struct__ACL_REVISION_INFORMATION = extern struct {
AclRevision: DWORD,
};
pub const ACL_REVISION_INFORMATION = struct__ACL_REVISION_INFORMATION;
pub const PACL_REVISION_INFORMATION = ?&ACL_REVISION_INFORMATION;
pub const struct__ACL_SIZE_INFORMATION = extern struct {
AceCount: DWORD,
AclBytesInUse: DWORD,
AclBytesFree: DWORD,
};
pub const ACL_SIZE_INFORMATION = struct__ACL_SIZE_INFORMATION;
pub const PACL_SIZE_INFORMATION = ?&ACL_SIZE_INFORMATION;
pub const SECURITY_DESCRIPTOR_CONTROL = WORD;
pub const PSECURITY_DESCRIPTOR_CONTROL = ?&WORD;
pub const struct__SECURITY_DESCRIPTOR_RELATIVE = extern struct {
Revision: BYTE,
Sbz1: BYTE,
Control: SECURITY_DESCRIPTOR_CONTROL,
Owner: DWORD,
Group: DWORD,
Sacl: DWORD,
Dacl: DWORD,
};
pub const SECURITY_DESCRIPTOR_RELATIVE = struct__SECURITY_DESCRIPTOR_RELATIVE;
pub const PISECURITY_DESCRIPTOR_RELATIVE = ?&struct__SECURITY_DESCRIPTOR_RELATIVE;
pub const struct__SECURITY_DESCRIPTOR = extern struct {
Revision: BYTE,
Sbz1: BYTE,
Control: SECURITY_DESCRIPTOR_CONTROL,
Owner: PSID,
Group: PSID,
Sacl: PACL,
Dacl: PACL,
};
pub const SECURITY_DESCRIPTOR = struct__SECURITY_DESCRIPTOR;
pub const PISECURITY_DESCRIPTOR = ?&struct__SECURITY_DESCRIPTOR;
pub const struct__SECURITY_OBJECT_AI_PARAMS = extern struct {
Size: DWORD,
ConstraintMask: DWORD,
};
pub const SECURITY_OBJECT_AI_PARAMS = struct__SECURITY_OBJECT_AI_PARAMS;
pub const PSECURITY_OBJECT_AI_PARAMS = ?&struct__SECURITY_OBJECT_AI_PARAMS;
pub const struct__OBJECT_TYPE_LIST = extern struct {
Level: WORD,
Sbz: WORD,
ObjectType: ?&GUID,
};
pub const OBJECT_TYPE_LIST = struct__OBJECT_TYPE_LIST;
pub const POBJECT_TYPE_LIST = ?&struct__OBJECT_TYPE_LIST;
pub const AuditEventObjectAccess = enum__AUDIT_EVENT_TYPE.AuditEventObjectAccess;
pub const AuditEventDirectoryServiceAccess = enum__AUDIT_EVENT_TYPE.AuditEventDirectoryServiceAccess;
pub const enum__AUDIT_EVENT_TYPE = extern enum {
AuditEventObjectAccess,
AuditEventDirectoryServiceAccess,
};
pub const AUDIT_EVENT_TYPE = enum__AUDIT_EVENT_TYPE;
pub const PAUDIT_EVENT_TYPE = ?&enum__AUDIT_EVENT_TYPE;
pub const struct__PRIVILEGE_SET = extern struct {
PrivilegeCount: DWORD,
Control: DWORD,
Privilege: [1]LUID_AND_ATTRIBUTES,
};
pub const PRIVILEGE_SET = struct__PRIVILEGE_SET;
pub const PPRIVILEGE_SET = ?&struct__PRIVILEGE_SET;
pub const AccessReasonNone: c_int = 0;
pub const AccessReasonAllowedAce: c_int = 65536;
pub const AccessReasonDeniedAce: c_int = 131072;
pub const AccessReasonAllowedParentAce: c_int = 196608;
pub const AccessReasonDeniedParentAce: c_int = 262144;
pub const AccessReasonNotGrantedByCape: c_int = 327680;
pub const AccessReasonNotGrantedByParentCape: c_int = 393216;
pub const AccessReasonNotGrantedToAppContainer: c_int = 458752;
pub const AccessReasonMissingPrivilege: c_int = 1048576;
pub const AccessReasonFromPrivilege: c_int = 2097152;
pub const AccessReasonIntegrityLevel: c_int = 3145728;
pub const AccessReasonOwnership: c_int = 4194304;
pub const AccessReasonNullDacl: c_int = 5242880;
pub const AccessReasonEmptyDacl: c_int = 6291456;
pub const AccessReasonNoSD: c_int = 7340032;
pub const AccessReasonNoGrant: c_int = 8388608;
pub const AccessReasonTrustLabel: c_int = 9437184;
pub const enum__ACCESS_REASON_TYPE = c_int;
pub const AccessReasonNone: c_int = 0;
pub const AccessReasonAllowedAce: c_int = 65536;
pub const AccessReasonDeniedAce: c_int = 131072;
pub const AccessReasonAllowedParentAce: c_int = 196608;
pub const AccessReasonDeniedParentAce: c_int = 262144;
pub const AccessReasonNotGrantedByCape: c_int = 327680;
pub const AccessReasonNotGrantedByParentCape: c_int = 393216;
pub const AccessReasonNotGrantedToAppContainer: c_int = 458752;
pub const AccessReasonMissingPrivilege: c_int = 1048576;
pub const AccessReasonFromPrivilege: c_int = 2097152;
pub const AccessReasonIntegrityLevel: c_int = 3145728;
pub const AccessReasonOwnership: c_int = 4194304;
pub const AccessReasonNullDacl: c_int = 5242880;
pub const AccessReasonEmptyDacl: c_int = 6291456;
pub const AccessReasonNoSD: c_int = 7340032;
pub const AccessReasonNoGrant: c_int = 8388608;
pub const AccessReasonTrustLabel: c_int = 9437184;
pub const enum__ACCESS_REASON_TYPE = c_int;
pub const ACCESS_REASON_TYPE = enum__ACCESS_REASON_TYPE;
pub const ACCESS_REASON = DWORD;
pub const struct__ACCESS_REASONS = extern struct {
Data: [32]ACCESS_REASON,
};
pub const ACCESS_REASONS = struct__ACCESS_REASONS;
pub const PACCESS_REASONS = ?&struct__ACCESS_REASONS;
pub const struct__SE_SECURITY_DESCRIPTOR = extern struct {
Size: DWORD,
Flags: DWORD,
SecurityDescriptor: PSECURITY_DESCRIPTOR,
};
pub const SE_SECURITY_DESCRIPTOR = struct__SE_SECURITY_DESCRIPTOR;
pub const PSE_SECURITY_DESCRIPTOR = ?&struct__SE_SECURITY_DESCRIPTOR;
pub const struct__SE_ACCESS_REQUEST = extern struct {
Size: DWORD,
SeSecurityDescriptor: PSE_SECURITY_DESCRIPTOR,
DesiredAccess: ACCESS_MASK,
PreviouslyGrantedAccess: ACCESS_MASK,
PrincipalSelfSid: PSID,
GenericMapping: PGENERIC_MAPPING,
ObjectTypeListCount: DWORD,
ObjectTypeList: POBJECT_TYPE_LIST,
};
pub const SE_ACCESS_REQUEST = struct__SE_ACCESS_REQUEST;
pub const PSE_ACCESS_REQUEST = ?&struct__SE_ACCESS_REQUEST;
pub const struct__SE_ACCESS_REPLY = extern struct {
Size: DWORD,
ResultListCount: DWORD,
GrantedAccess: PACCESS_MASK,
AccessStatus: PDWORD,
AccessReason: PACCESS_REASONS,
Privileges: ?&PPRIVILEGE_SET,
};
pub const SE_ACCESS_REPLY = struct__SE_ACCESS_REPLY;
pub const PSE_ACCESS_REPLY = ?&struct__SE_ACCESS_REPLY;
pub const SecurityAnonymous = enum__SECURITY_IMPERSONATION_LEVEL.SecurityAnonymous;
pub const SecurityIdentification = enum__SECURITY_IMPERSONATION_LEVEL.SecurityIdentification;
pub const SecurityImpersonation = enum__SECURITY_IMPERSONATION_LEVEL.SecurityImpersonation;
pub const SecurityDelegation = enum__SECURITY_IMPERSONATION_LEVEL.SecurityDelegation;
pub const enum__SECURITY_IMPERSONATION_LEVEL = extern enum {
SecurityAnonymous,
SecurityIdentification,
SecurityImpersonation,
SecurityDelegation,
};
pub const SECURITY_IMPERSONATION_LEVEL = enum__SECURITY_IMPERSONATION_LEVEL;
pub const PSECURITY_IMPERSONATION_LEVEL = ?&enum__SECURITY_IMPERSONATION_LEVEL;
pub const TokenPrimary: c_int = 1;
pub const TokenImpersonation: c_int = 2;
pub const enum__TOKEN_TYPE = c_int;
pub const TokenPrimary: c_int = 1;
pub const TokenImpersonation: c_int = 2;
pub const enum__TOKEN_TYPE = c_int;
pub const TOKEN_TYPE = enum__TOKEN_TYPE;
pub const PTOKEN_TYPE = ?&TOKEN_TYPE;
pub const TokenElevationTypeDefault: c_int = 1;
pub const TokenElevationTypeFull: c_int = 2;
pub const TokenElevationTypeLimited: c_int = 3;
pub const enum__TOKEN_ELEVATION_TYPE = c_int;
pub const TokenElevationTypeDefault: c_int = 1;
pub const TokenElevationTypeFull: c_int = 2;
pub const TokenElevationTypeLimited: c_int = 3;
pub const enum__TOKEN_ELEVATION_TYPE = c_int;
pub const TOKEN_ELEVATION_TYPE = enum__TOKEN_ELEVATION_TYPE;
pub const TokenElevationTypeDefault: c_int = 1;
pub const TokenElevationTypeFull: c_int = 2;
pub const TokenElevationTypeLimited: c_int = 3;
pub const enum__TOKEN_ELEVATION_TYPE = c_int;
pub const PTOKEN_ELEVATION_TYPE = ?&enum__TOKEN_ELEVATION_TYPE;
pub const TokenUser: c_int = 1;
pub const TokenGroups: c_int = 2;
pub const TokenPrivileges: c_int = 3;
pub const TokenOwner: c_int = 4;
pub const TokenPrimaryGroup: c_int = 5;
pub const TokenDefaultDacl: c_int = 6;
pub const TokenSource: c_int = 7;
pub const TokenType: c_int = 8;
pub const TokenImpersonationLevel: c_int = 9;
pub const TokenStatistics: c_int = 10;
pub const TokenRestrictedSids: c_int = 11;
pub const TokenSessionId: c_int = 12;
pub const TokenGroupsAndPrivileges: c_int = 13;
pub const TokenSessionReference: c_int = 14;
pub const TokenSandBoxInert: c_int = 15;
pub const TokenAuditPolicy: c_int = 16;
pub const TokenOrigin: c_int = 17;
pub const TokenElevationType: c_int = 18;
pub const TokenLinkedToken: c_int = 19;
pub const TokenElevation: c_int = 20;
pub const TokenHasRestrictions: c_int = 21;
pub const TokenAccessInformation: c_int = 22;
pub const TokenVirtualizationAllowed: c_int = 23;
pub const TokenVirtualizationEnabled: c_int = 24;
pub const TokenIntegrityLevel: c_int = 25;
pub const TokenUIAccess: c_int = 26;
pub const TokenMandatoryPolicy: c_int = 27;
pub const TokenLogonSid: c_int = 28;
pub const TokenIsAppContainer: c_int = 29;
pub const TokenCapabilities: c_int = 30;
pub const TokenAppContainerSid: c_int = 31;
pub const TokenAppContainerNumber: c_int = 32;
pub const TokenUserClaimAttributes: c_int = 33;
pub const TokenDeviceClaimAttributes: c_int = 34;
pub const TokenRestrictedUserClaimAttributes: c_int = 35;
pub const TokenRestrictedDeviceClaimAttributes: c_int = 36;
pub const TokenDeviceGroups: c_int = 37;
pub const TokenRestrictedDeviceGroups: c_int = 38;
pub const TokenSecurityAttributes: c_int = 39;
pub const TokenIsRestricted: c_int = 40;
pub const TokenProcessTrustLevel: c_int = 41;
pub const MaxTokenInfoClass: c_int = 42;
pub const enum__TOKEN_INFORMATION_CLASS = c_int;
pub const TokenUser: c_int = 1;
pub const TokenGroups: c_int = 2;
pub const TokenPrivileges: c_int = 3;
pub const TokenOwner: c_int = 4;
pub const TokenPrimaryGroup: c_int = 5;
pub const TokenDefaultDacl: c_int = 6;
pub const TokenSource: c_int = 7;
pub const TokenType: c_int = 8;
pub const TokenImpersonationLevel: c_int = 9;
pub const TokenStatistics: c_int = 10;
pub const TokenRestrictedSids: c_int = 11;
pub const TokenSessionId: c_int = 12;
pub const TokenGroupsAndPrivileges: c_int = 13;
pub const TokenSessionReference: c_int = 14;
pub const TokenSandBoxInert: c_int = 15;
pub const TokenAuditPolicy: c_int = 16;
pub const TokenOrigin: c_int = 17;
pub const TokenElevationType: c_int = 18;
pub const TokenLinkedToken: c_int = 19;
pub const TokenElevation: c_int = 20;
pub const TokenHasRestrictions: c_int = 21;
pub const TokenAccessInformation: c_int = 22;
pub const TokenVirtualizationAllowed: c_int = 23;
pub const TokenVirtualizationEnabled: c_int = 24;
pub const TokenIntegrityLevel: c_int = 25;
pub const TokenUIAccess: c_int = 26;
pub const TokenMandatoryPolicy: c_int = 27;
pub const TokenLogonSid: c_int = 28;
pub const TokenIsAppContainer: c_int = 29;
pub const TokenCapabilities: c_int = 30;
pub const TokenAppContainerSid: c_int = 31;
pub const TokenAppContainerNumber: c_int = 32;
pub const TokenUserClaimAttributes: c_int = 33;
pub const TokenDeviceClaimAttributes: c_int = 34;
pub const TokenRestrictedUserClaimAttributes: c_int = 35;
pub const TokenRestrictedDeviceClaimAttributes: c_int = 36;
pub const TokenDeviceGroups: c_int = 37;
pub const TokenRestrictedDeviceGroups: c_int = 38;
pub const TokenSecurityAttributes: c_int = 39;
pub const TokenIsRestricted: c_int = 40;
pub const TokenProcessTrustLevel: c_int = 41;
pub const MaxTokenInfoClass: c_int = 42;
pub const enum__TOKEN_INFORMATION_CLASS = c_int;
pub const TOKEN_INFORMATION_CLASS = enum__TOKEN_INFORMATION_CLASS;
pub const TokenUser: c_int = 1;
pub const TokenGroups: c_int = 2;
pub const TokenPrivileges: c_int = 3;
pub const TokenOwner: c_int = 4;
pub const TokenPrimaryGroup: c_int = 5;
pub const TokenDefaultDacl: c_int = 6;
pub const TokenSource: c_int = 7;
pub const TokenType: c_int = 8;
pub const TokenImpersonationLevel: c_int = 9;
pub const TokenStatistics: c_int = 10;
pub const TokenRestrictedSids: c_int = 11;
pub const TokenSessionId: c_int = 12;
pub const TokenGroupsAndPrivileges: c_int = 13;
pub const TokenSessionReference: c_int = 14;
pub const TokenSandBoxInert: c_int = 15;
pub const TokenAuditPolicy: c_int = 16;
pub const TokenOrigin: c_int = 17;
pub const TokenElevationType: c_int = 18;
pub const TokenLinkedToken: c_int = 19;
pub const TokenElevation: c_int = 20;
pub const TokenHasRestrictions: c_int = 21;
pub const TokenAccessInformation: c_int = 22;
pub const TokenVirtualizationAllowed: c_int = 23;
pub const TokenVirtualizationEnabled: c_int = 24;
pub const TokenIntegrityLevel: c_int = 25;
pub const TokenUIAccess: c_int = 26;
pub const TokenMandatoryPolicy: c_int = 27;
pub const TokenLogonSid: c_int = 28;
pub const TokenIsAppContainer: c_int = 29;
pub const TokenCapabilities: c_int = 30;
pub const TokenAppContainerSid: c_int = 31;
pub const TokenAppContainerNumber: c_int = 32;
pub const TokenUserClaimAttributes: c_int = 33;
pub const TokenDeviceClaimAttributes: c_int = 34;
pub const TokenRestrictedUserClaimAttributes: c_int = 35;
pub const TokenRestrictedDeviceClaimAttributes: c_int = 36;
pub const TokenDeviceGroups: c_int = 37;
pub const TokenRestrictedDeviceGroups: c_int = 38;
pub const TokenSecurityAttributes: c_int = 39;
pub const TokenIsRestricted: c_int = 40;
pub const TokenProcessTrustLevel: c_int = 41;
pub const MaxTokenInfoClass: c_int = 42;
pub const enum__TOKEN_INFORMATION_CLASS = c_int;
pub const PTOKEN_INFORMATION_CLASS = ?&enum__TOKEN_INFORMATION_CLASS;
pub const struct__TOKEN_USER = extern struct {
User: SID_AND_ATTRIBUTES,
};
pub const TOKEN_USER = struct__TOKEN_USER;
pub const PTOKEN_USER = ?&struct__TOKEN_USER;
pub const struct__TOKEN_GROUPS = extern struct {
GroupCount: DWORD,
Groups: [1]SID_AND_ATTRIBUTES,
};
pub const TOKEN_GROUPS = struct__TOKEN_GROUPS;
pub const PTOKEN_GROUPS = ?&struct__TOKEN_GROUPS;
pub const struct__TOKEN_PRIVILEGES = extern struct {
PrivilegeCount: DWORD,
Privileges: [1]LUID_AND_ATTRIBUTES,
};
pub const TOKEN_PRIVILEGES = struct__TOKEN_PRIVILEGES;
pub const PTOKEN_PRIVILEGES = ?&struct__TOKEN_PRIVILEGES;
pub const struct__TOKEN_OWNER = extern struct {
Owner: PSID,
};
pub const TOKEN_OWNER = struct__TOKEN_OWNER;
pub const PTOKEN_OWNER = ?&struct__TOKEN_OWNER;
pub const struct__TOKEN_PRIMARY_GROUP = extern struct {
PrimaryGroup: PSID,
};
pub const TOKEN_PRIMARY_GROUP = struct__TOKEN_PRIMARY_GROUP;
pub const PTOKEN_PRIMARY_GROUP = ?&struct__TOKEN_PRIMARY_GROUP;
pub const struct__TOKEN_DEFAULT_DACL = extern struct {
DefaultDacl: PACL,
};
pub const TOKEN_DEFAULT_DACL = struct__TOKEN_DEFAULT_DACL;
pub const PTOKEN_DEFAULT_DACL = ?&struct__TOKEN_DEFAULT_DACL;
pub const struct__TOKEN_USER_CLAIMS = extern struct {
UserClaims: PCLAIMS_BLOB,
};
pub const TOKEN_USER_CLAIMS = struct__TOKEN_USER_CLAIMS;
pub const PTOKEN_USER_CLAIMS = ?&struct__TOKEN_USER_CLAIMS;
pub const struct__TOKEN_DEVICE_CLAIMS = extern struct {
DeviceClaims: PCLAIMS_BLOB,
};
pub const TOKEN_DEVICE_CLAIMS = struct__TOKEN_DEVICE_CLAIMS;
pub const PTOKEN_DEVICE_CLAIMS = ?&struct__TOKEN_DEVICE_CLAIMS;
pub const struct__TOKEN_GROUPS_AND_PRIVILEGES = extern struct {
SidCount: DWORD,
SidLength: DWORD,
Sids: PSID_AND_ATTRIBUTES,
RestrictedSidCount: DWORD,
RestrictedSidLength: DWORD,
RestrictedSids: PSID_AND_ATTRIBUTES,
PrivilegeCount: DWORD,
PrivilegeLength: DWORD,
Privileges: PLUID_AND_ATTRIBUTES,
AuthenticationId: LUID,
};
pub const TOKEN_GROUPS_AND_PRIVILEGES = struct__TOKEN_GROUPS_AND_PRIVILEGES;
pub const PTOKEN_GROUPS_AND_PRIVILEGES = ?&struct__TOKEN_GROUPS_AND_PRIVILEGES;
pub const struct__TOKEN_LINKED_TOKEN = extern struct {
LinkedToken: HANDLE,
};
pub const TOKEN_LINKED_TOKEN = struct__TOKEN_LINKED_TOKEN;
pub const PTOKEN_LINKED_TOKEN = ?&struct__TOKEN_LINKED_TOKEN;
pub const struct__TOKEN_ELEVATION = extern struct {
TokenIsElevated: DWORD,
};
pub const TOKEN_ELEVATION = struct__TOKEN_ELEVATION;
pub const PTOKEN_ELEVATION = ?&struct__TOKEN_ELEVATION;
pub const struct__TOKEN_MANDATORY_LABEL = extern struct {
Label: SID_AND_ATTRIBUTES,
};
pub const TOKEN_MANDATORY_LABEL = struct__TOKEN_MANDATORY_LABEL;
pub const PTOKEN_MANDATORY_LABEL = ?&struct__TOKEN_MANDATORY_LABEL;
pub const struct__TOKEN_MANDATORY_POLICY = extern struct {
Policy: DWORD,
};
pub const TOKEN_MANDATORY_POLICY = struct__TOKEN_MANDATORY_POLICY;
pub const PTOKEN_MANDATORY_POLICY = ?&struct__TOKEN_MANDATORY_POLICY;
pub const struct__TOKEN_ACCESS_INFORMATION = extern struct {
SidHash: PSID_AND_ATTRIBUTES_HASH,
RestrictedSidHash: PSID_AND_ATTRIBUTES_HASH,
Privileges: PTOKEN_PRIVILEGES,
AuthenticationId: LUID,
TokenType: TOKEN_TYPE,
ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
MandatoryPolicy: TOKEN_MANDATORY_POLICY,
Flags: DWORD,
AppContainerNumber: DWORD,
PackageSid: PSID,
CapabilitiesHash: PSID_AND_ATTRIBUTES_HASH,
TrustLevelSid: PSID,
};
pub const TOKEN_ACCESS_INFORMATION = struct__TOKEN_ACCESS_INFORMATION;
pub const PTOKEN_ACCESS_INFORMATION = ?&struct__TOKEN_ACCESS_INFORMATION;
pub const struct__TOKEN_AUDIT_POLICY = extern struct {
PerUserPolicy: [29]BYTE,
};
pub const TOKEN_AUDIT_POLICY = struct__TOKEN_AUDIT_POLICY;
pub const PTOKEN_AUDIT_POLICY = ?&struct__TOKEN_AUDIT_POLICY;
pub const struct__TOKEN_SOURCE = extern struct {
SourceName: [8]CHAR,
SourceIdentifier: LUID,
};
pub const TOKEN_SOURCE = struct__TOKEN_SOURCE;
pub const PTOKEN_SOURCE = ?&struct__TOKEN_SOURCE;
pub const struct__TOKEN_STATISTICS = @OpaqueType();
pub const TOKEN_STATISTICS = struct__TOKEN_STATISTICS;
pub const PTOKEN_STATISTICS = ?&struct__TOKEN_STATISTICS;
pub const struct__TOKEN_CONTROL = extern struct {
TokenId: LUID,
AuthenticationId: LUID,
ModifiedId: LUID,
TokenSource: TOKEN_SOURCE,
};
pub const TOKEN_CONTROL = struct__TOKEN_CONTROL;
pub const PTOKEN_CONTROL = ?&struct__TOKEN_CONTROL;
pub const struct__TOKEN_ORIGIN = extern struct {
OriginatingLogonSession: LUID,
};
pub const TOKEN_ORIGIN = struct__TOKEN_ORIGIN;
pub const PTOKEN_ORIGIN = ?&struct__TOKEN_ORIGIN;
pub const MandatoryLevelUntrusted: c_int = 0;
pub const MandatoryLevelLow: c_int = 1;
pub const MandatoryLevelMedium: c_int = 2;
pub const MandatoryLevelHigh: c_int = 3;
pub const MandatoryLevelSystem: c_int = 4;
pub const MandatoryLevelSecureProcess: c_int = 5;
pub const MandatoryLevelCount: c_int = 6;
pub const enum__MANDATORY_LEVEL = c_int;
pub const MandatoryLevelUntrusted: c_int = 0;
pub const MandatoryLevelLow: c_int = 1;
pub const MandatoryLevelMedium: c_int = 2;
pub const MandatoryLevelHigh: c_int = 3;
pub const MandatoryLevelSystem: c_int = 4;
pub const MandatoryLevelSecureProcess: c_int = 5;
pub const MandatoryLevelCount: c_int = 6;
pub const enum__MANDATORY_LEVEL = c_int;
pub const MANDATORY_LEVEL = enum__MANDATORY_LEVEL;
pub const MandatoryLevelUntrusted: c_int = 0;
pub const MandatoryLevelLow: c_int = 1;
pub const MandatoryLevelMedium: c_int = 2;
pub const MandatoryLevelHigh: c_int = 3;
pub const MandatoryLevelSystem: c_int = 4;
pub const MandatoryLevelSecureProcess: c_int = 5;
pub const MandatoryLevelCount: c_int = 6;
pub const enum__MANDATORY_LEVEL = c_int;
pub const PMANDATORY_LEVEL = ?&enum__MANDATORY_LEVEL;
pub const struct__TOKEN_APPCONTAINER_INFORMATION = extern struct {
TokenAppContainer: PSID,
};
pub const TOKEN_APPCONTAINER_INFORMATION = struct__TOKEN_APPCONTAINER_INFORMATION;
pub const PTOKEN_APPCONTAINER_INFORMATION = ?&struct__TOKEN_APPCONTAINER_INFORMATION;
pub const struct__TOKEN_SID_INFORMATION = extern struct {
Sid: PSID,
};
pub const TOKEN_SID_INFORMATION = struct__TOKEN_SID_INFORMATION;
pub const PTOKEN_SID_INFORMATION = ?&struct__TOKEN_SID_INFORMATION;
pub const struct__CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = extern struct {
Version: DWORD64,
Name: PWSTR,
};
pub const CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = struct__CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE;
pub const PCLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE = ?&struct__CLAIM_SECURITY_ATTRIBUTE_FQBN_VALUE;
pub const struct__CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = extern struct {
pValue: PVOID,
ValueLength: DWORD,
};
pub const CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = struct__CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE;
pub const PCLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE = ?&struct__CLAIM_SECURITY_ATTRIBUTE_OCTET_STRING_VALUE;
pub const struct__CLAIM_SECURITY_ATTRIBUTE_V1 = @OpaqueType();
pub const CLAIM_SECURITY_ATTRIBUTE_V1 = struct__CLAIM_SECURITY_ATTRIBUTE_V1;
pub const PCLAIM_SECURITY_ATTRIBUTE_V1 = ?&struct__CLAIM_SECURITY_ATTRIBUTE_V1;
pub const struct__CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = @OpaqueType();
pub const CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = struct__CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1;
pub const PCLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1 = ?&struct__CLAIM_SECURITY_ATTRIBUTE_RELATIVE_V1;
pub const struct__CLAIM_SECURITY_ATTRIBUTES_INFORMATION = @OpaqueType();
pub const CLAIM_SECURITY_ATTRIBUTES_INFORMATION = struct__CLAIM_SECURITY_ATTRIBUTES_INFORMATION;
pub const PCLAIM_SECURITY_ATTRIBUTES_INFORMATION = ?&struct__CLAIM_SECURITY_ATTRIBUTES_INFORMATION;
pub const SECURITY_CONTEXT_TRACKING_MODE = BOOLEAN;
pub const PSECURITY_CONTEXT_TRACKING_MODE = ?&BOOLEAN;
pub const struct__SECURITY_QUALITY_OF_SERVICE = extern struct {
Length: DWORD,
ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL,
ContextTrackingMode: SECURITY_CONTEXT_TRACKING_MODE,
EffectiveOnly: BOOLEAN,
};
pub const SECURITY_QUALITY_OF_SERVICE = struct__SECURITY_QUALITY_OF_SERVICE;
pub const PSECURITY_QUALITY_OF_SERVICE = ?&struct__SECURITY_QUALITY_OF_SERVICE;
pub const struct__SE_IMPERSONATION_STATE = extern struct {
Token: PACCESS_TOKEN,
CopyOnOpen: BOOLEAN,
EffectiveOnly: BOOLEAN,
Level: SECURITY_IMPERSONATION_LEVEL,
};
pub const SE_IMPERSONATION_STATE = struct__SE_IMPERSONATION_STATE;
pub const PSE_IMPERSONATION_STATE = ?&struct__SE_IMPERSONATION_STATE;
pub const SECURITY_INFORMATION = DWORD;
pub const PSECURITY_INFORMATION = ?&DWORD;
pub const SeLearningModeInvalidType: c_int = 0;
pub const SeLearningModeSettings: c_int = 1;
pub const SeLearningModeMax: c_int = 2;
pub const enum__SE_LEARNING_MODE_DATA_TYPE = c_int;
pub const SeLearningModeInvalidType: c_int = 0;
pub const SeLearningModeSettings: c_int = 1;
pub const SeLearningModeMax: c_int = 2;
pub const enum__SE_LEARNING_MODE_DATA_TYPE = c_int;
pub const SE_LEARNING_MODE_DATA_TYPE = enum__SE_LEARNING_MODE_DATA_TYPE;
pub const struct__SECURITY_CAPABILITIES = extern struct {
AppContainerSid: PSID,
Capabilities: PSID_AND_ATTRIBUTES,
CapabilityCount: DWORD,
Reserved: DWORD,
};
pub const SECURITY_CAPABILITIES = struct__SECURITY_CAPABILITIES;
pub const PSECURITY_CAPABILITIES = ?&struct__SECURITY_CAPABILITIES;
pub const LPSECURITY_CAPABILITIES = ?&struct__SECURITY_CAPABILITIES;
pub const struct__JOB_SET_ARRAY = extern struct {
JobHandle: HANDLE,
MemberLevel: DWORD,
Flags: DWORD,
};
pub const JOB_SET_ARRAY = struct__JOB_SET_ARRAY;
pub const PJOB_SET_ARRAY = ?&struct__JOB_SET_ARRAY;
pub const struct__EXCEPTION_REGISTRATION_RECORD = extern struct {
Next: ?&struct__EXCEPTION_REGISTRATION_RECORD,
Handler: PEXCEPTION_ROUTINE,
};
pub const EXCEPTION_REGISTRATION_RECORD = struct__EXCEPTION_REGISTRATION_RECORD;
pub const PEXCEPTION_REGISTRATION_RECORD = ?&EXCEPTION_REGISTRATION_RECORD;
pub const struct__NT_TIB = @OpaqueType();
pub const NT_TIB = struct__NT_TIB;
pub const PNT_TIB = ?&NT_TIB;
pub const struct__NT_TIB32 = @OpaqueType();
pub const NT_TIB32 = struct__NT_TIB32;
pub const PNT_TIB32 = ?&struct__NT_TIB32;
pub const struct__NT_TIB64 = @OpaqueType();
pub const NT_TIB64 = struct__NT_TIB64;
pub const PNT_TIB64 = ?&struct__NT_TIB64;
pub const struct__UMS_CREATE_THREAD_ATTRIBUTES = extern struct {
UmsVersion: DWORD,
UmsContext: PVOID,
UmsCompletionList: PVOID,
};
pub const UMS_CREATE_THREAD_ATTRIBUTES = struct__UMS_CREATE_THREAD_ATTRIBUTES;
pub const PUMS_CREATE_THREAD_ATTRIBUTES = ?&struct__UMS_CREATE_THREAD_ATTRIBUTES;
pub const struct__QUOTA_LIMITS = @OpaqueType();
pub const QUOTA_LIMITS = struct__QUOTA_LIMITS;
pub const PQUOTA_LIMITS = ?&struct__QUOTA_LIMITS;
pub const struct__QUOTA_LIMITS_EX = @OpaqueType();
pub const QUOTA_LIMITS_EX = struct__QUOTA_LIMITS_EX;
pub const PQUOTA_LIMITS_EX = ?&struct__QUOTA_LIMITS_EX;
pub const struct__IO_COUNTERS = extern struct {
ReadOperationCount: ULONGLONG,
WriteOperationCount: ULONGLONG,
OtherOperationCount: ULONGLONG,
ReadTransferCount: ULONGLONG,
WriteTransferCount: ULONGLONG,
OtherTransferCount: ULONGLONG,
};
pub const IO_COUNTERS = struct__IO_COUNTERS;
pub const PIO_COUNTERS = ?&IO_COUNTERS;
pub const PMCCounter = enum__HARDWARE_COUNTER_TYPE.PMCCounter;
pub const MaxHardwareCounterType = enum__HARDWARE_COUNTER_TYPE.MaxHardwareCounterType;
pub const enum__HARDWARE_COUNTER_TYPE = extern enum {
PMCCounter,
MaxHardwareCounterType,
};
pub const HARDWARE_COUNTER_TYPE = enum__HARDWARE_COUNTER_TYPE;
pub const PHARDWARE_COUNTER_TYPE = ?&enum__HARDWARE_COUNTER_TYPE;
pub const ProcessDEPPolicy = enum__PROCESS_MITIGATION_POLICY.ProcessDEPPolicy;
pub const ProcessASLRPolicy = enum__PROCESS_MITIGATION_POLICY.ProcessASLRPolicy;
pub const ProcessDynamicCodePolicy = enum__PROCESS_MITIGATION_POLICY.ProcessDynamicCodePolicy;
pub const ProcessStrictHandleCheckPolicy = enum__PROCESS_MITIGATION_POLICY.ProcessStrictHandleCheckPolicy;
pub const ProcessSystemCallDisablePolicy = enum__PROCESS_MITIGATION_POLICY.ProcessSystemCallDisablePolicy;
pub const ProcessMitigationOptionsMask = enum__PROCESS_MITIGATION_POLICY.ProcessMitigationOptionsMask;
pub const ProcessExtensionPointDisablePolicy = enum__PROCESS_MITIGATION_POLICY.ProcessExtensionPointDisablePolicy;
pub const ProcessReserved1Policy = enum__PROCESS_MITIGATION_POLICY.ProcessReserved1Policy;
pub const ProcessSignaturePolicy = enum__PROCESS_MITIGATION_POLICY.ProcessSignaturePolicy;
pub const MaxProcessMitigationPolicy = enum__PROCESS_MITIGATION_POLICY.MaxProcessMitigationPolicy;
pub const enum__PROCESS_MITIGATION_POLICY = extern enum {
ProcessDEPPolicy,
ProcessASLRPolicy,
ProcessDynamicCodePolicy,
ProcessStrictHandleCheckPolicy,
ProcessSystemCallDisablePolicy,
ProcessMitigationOptionsMask,
ProcessExtensionPointDisablePolicy,
ProcessReserved1Policy,
ProcessSignaturePolicy,
MaxProcessMitigationPolicy,
};
pub const PROCESS_MITIGATION_POLICY = enum__PROCESS_MITIGATION_POLICY;
pub const PPROCESS_MITIGATION_POLICY = ?&enum__PROCESS_MITIGATION_POLICY;
pub const struct__PROCESS_MITIGATION_ASLR_POLICY = @OpaqueType();
pub const PROCESS_MITIGATION_ASLR_POLICY = struct__PROCESS_MITIGATION_ASLR_POLICY;
pub const PPROCESS_MITIGATION_ASLR_POLICY = ?&struct__PROCESS_MITIGATION_ASLR_POLICY;
pub const struct__PROCESS_MITIGATION_DEP_POLICY = @OpaqueType();
pub const PROCESS_MITIGATION_DEP_POLICY = struct__PROCESS_MITIGATION_DEP_POLICY;
pub const PPROCESS_MITIGATION_DEP_POLICY = ?&struct__PROCESS_MITIGATION_DEP_POLICY;
pub const struct__PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = @OpaqueType();
pub const PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = struct__PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY;
pub const PPROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY = ?&struct__PROCESS_MITIGATION_STRICT_HANDLE_CHECK_POLICY;
pub const struct__PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = @OpaqueType();
pub const PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = struct__PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY;
pub const PPROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY = ?&struct__PROCESS_MITIGATION_SYSTEM_CALL_DISABLE_POLICY;
pub const struct__PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = @OpaqueType();
pub const PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = struct__PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY;
pub const PPROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY = ?&struct__PROCESS_MITIGATION_EXTENSION_POINT_DISABLE_POLICY;
pub const struct__PROCESS_MITIGATION_DYNAMIC_CODE_POLICY = @OpaqueType();
pub const PROCESS_MITIGATION_DYNAMIC_CODE_POLICY = struct__PROCESS_MITIGATION_DYNAMIC_CODE_POLICY;
pub const PPROCESS_MITIGATION_DYNAMIC_CODE_POLICY = ?&struct__PROCESS_MITIGATION_DYNAMIC_CODE_POLICY;
pub const struct__PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = @OpaqueType();
pub const PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = struct__PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY;
pub const PPROCESS_MITIGATION_BINARY_SIGNATURE_POLICY = ?&struct__PROCESS_MITIGATION_BINARY_SIGNATURE_POLICY;
pub const struct__JOBOBJECT_BASIC_ACCOUNTING_INFORMATION = @OpaqueType();
pub const JOBOBJECT_BASIC_ACCOUNTING_INFORMATION = struct__JOBOBJECT_BASIC_ACCOUNTING_INFORMATION;
pub const PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION = ?&struct__JOBOBJECT_BASIC_ACCOUNTING_INFORMATION;
pub const struct__JOBOBJECT_BASIC_LIMIT_INFORMATION = @OpaqueType();
pub const JOBOBJECT_BASIC_LIMIT_INFORMATION = struct__JOBOBJECT_BASIC_LIMIT_INFORMATION;
pub const PJOBOBJECT_BASIC_LIMIT_INFORMATION = ?&struct__JOBOBJECT_BASIC_LIMIT_INFORMATION;
pub const struct__JOBOBJECT_EXTENDED_LIMIT_INFORMATION = extern struct {
BasicLimitInformation: JOBOBJECT_BASIC_LIMIT_INFORMATION,
IoInfo: IO_COUNTERS,
ProcessMemoryLimit: SIZE_T,
JobMemoryLimit: SIZE_T,
PeakProcessMemoryUsed: SIZE_T,
PeakJobMemoryUsed: SIZE_T,
};
pub const JOBOBJECT_EXTENDED_LIMIT_INFORMATION = struct__JOBOBJECT_EXTENDED_LIMIT_INFORMATION;
pub const PJOBOBJECT_EXTENDED_LIMIT_INFORMATION = ?&struct__JOBOBJECT_EXTENDED_LIMIT_INFORMATION;
pub const struct__JOBOBJECT_BASIC_PROCESS_ID_LIST = extern struct {
NumberOfAssignedProcesses: DWORD,
NumberOfProcessIdsInList: DWORD,
ProcessIdList: [1]ULONG_PTR,
};
pub const JOBOBJECT_BASIC_PROCESS_ID_LIST = struct__JOBOBJECT_BASIC_PROCESS_ID_LIST;
pub const PJOBOBJECT_BASIC_PROCESS_ID_LIST = ?&struct__JOBOBJECT_BASIC_PROCESS_ID_LIST;
pub const struct__JOBOBJECT_BASIC_UI_RESTRICTIONS = extern struct {
UIRestrictionsClass: DWORD,
};
pub const JOBOBJECT_BASIC_UI_RESTRICTIONS = struct__JOBOBJECT_BASIC_UI_RESTRICTIONS;
pub const PJOBOBJECT_BASIC_UI_RESTRICTIONS = ?&struct__JOBOBJECT_BASIC_UI_RESTRICTIONS;
pub const struct__JOBOBJECT_SECURITY_LIMIT_INFORMATION = extern struct {
SecurityLimitFlags: DWORD,
JobToken: HANDLE,
SidsToDisable: PTOKEN_GROUPS,
PrivilegesToDelete: PTOKEN_PRIVILEGES,
RestrictedSids: PTOKEN_GROUPS,
};
pub const JOBOBJECT_SECURITY_LIMIT_INFORMATION = struct__JOBOBJECT_SECURITY_LIMIT_INFORMATION;
pub const PJOBOBJECT_SECURITY_LIMIT_INFORMATION = ?&struct__JOBOBJECT_SECURITY_LIMIT_INFORMATION;
pub const struct__JOBOBJECT_END_OF_JOB_TIME_INFORMATION = extern struct {
EndOfJobTimeAction: DWORD,
};
pub const JOBOBJECT_END_OF_JOB_TIME_INFORMATION = struct__JOBOBJECT_END_OF_JOB_TIME_INFORMATION;
pub const PJOBOBJECT_END_OF_JOB_TIME_INFORMATION = ?&struct__JOBOBJECT_END_OF_JOB_TIME_INFORMATION;
pub const struct__JOBOBJECT_ASSOCIATE_COMPLETION_PORT = extern struct {
CompletionKey: PVOID,
CompletionPort: HANDLE,
};
pub const JOBOBJECT_ASSOCIATE_COMPLETION_PORT = struct__JOBOBJECT_ASSOCIATE_COMPLETION_PORT;
pub const PJOBOBJECT_ASSOCIATE_COMPLETION_PORT = ?&struct__JOBOBJECT_ASSOCIATE_COMPLETION_PORT;
pub const struct__JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION = extern struct {
BasicInfo: JOBOBJECT_BASIC_ACCOUNTING_INFORMATION,
IoInfo: IO_COUNTERS,
};
pub const JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION = struct__JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION;
pub const PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION = ?&struct__JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION;
pub const struct__JOBOBJECT_JOBSET_INFORMATION = extern struct {
MemberLevel: DWORD,
};
pub const JOBOBJECT_JOBSET_INFORMATION = struct__JOBOBJECT_JOBSET_INFORMATION;
pub const PJOBOBJECT_JOBSET_INFORMATION = ?&struct__JOBOBJECT_JOBSET_INFORMATION;
pub const ToleranceLow: c_int = 1;
pub const ToleranceMedium: c_int = 2;
pub const ToleranceHigh: c_int = 3;
pub const enum__JOBOBJECT_RATE_CONTROL_TOLERANCE = c_int;
pub const ToleranceLow: c_int = 1;
pub const ToleranceMedium: c_int = 2;
pub const ToleranceHigh: c_int = 3;
pub const enum__JOBOBJECT_RATE_CONTROL_TOLERANCE = c_int;
pub const JOBOBJECT_RATE_CONTROL_TOLERANCE = enum__JOBOBJECT_RATE_CONTROL_TOLERANCE;
pub const ToleranceIntervalShort: c_int = 1;
pub const ToleranceIntervalMedium: c_int = 2;
pub const ToleranceIntervalLong: c_int = 3;
pub const enum__JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = c_int;
pub const ToleranceIntervalShort: c_int = 1;
pub const ToleranceIntervalMedium: c_int = 2;
pub const ToleranceIntervalLong: c_int = 3;
pub const enum__JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = c_int;
pub const JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL = enum__JOBOBJECT_RATE_CONTROL_TOLERANCE_INTERVAL;
pub const struct__JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION = @OpaqueType();
pub const JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION = struct__JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION;
pub const PJOBOBJECT_NOTIFICATION_LIMIT_INFORMATION = ?&struct__JOBOBJECT_NOTIFICATION_LIMIT_INFORMATION;
pub const struct__JOBOBJECT_LIMIT_VIOLATION_INFORMATION = @OpaqueType();
pub const JOBOBJECT_LIMIT_VIOLATION_INFORMATION = struct__JOBOBJECT_LIMIT_VIOLATION_INFORMATION;
pub const PJOBOBJECT_LIMIT_VIOLATION_INFORMATION = ?&struct__JOBOBJECT_LIMIT_VIOLATION_INFORMATION;
pub const struct__JOBOBJECT_CPU_RATE_CONTROL_INFORMATION = @OpaqueType();
pub const JOBOBJECT_CPU_RATE_CONTROL_INFORMATION = struct__JOBOBJECT_CPU_RATE_CONTROL_INFORMATION;
pub const PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION = ?&struct__JOBOBJECT_CPU_RATE_CONTROL_INFORMATION;
pub const JobObjectBasicAccountingInformation: c_int = 1;
pub const JobObjectBasicLimitInformation: c_int = 2;
pub const JobObjectBasicProcessIdList: c_int = 3;
pub const JobObjectBasicUIRestrictions: c_int = 4;
pub const JobObjectSecurityLimitInformation: c_int = 5;
pub const JobObjectEndOfJobTimeInformation: c_int = 6;
pub const JobObjectAssociateCompletionPortInformation: c_int = 7;
pub const JobObjectBasicAndIoAccountingInformation: c_int = 8;
pub const JobObjectExtendedLimitInformation: c_int = 9;
pub const JobObjectJobSetInformation: c_int = 10;
pub const JobObjectGroupInformation: c_int = 11;
pub const JobObjectNotificationLimitInformation: c_int = 12;
pub const JobObjectLimitViolationInformation: c_int = 13;
pub const JobObjectGroupInformationEx: c_int = 14;
pub const JobObjectCpuRateControlInformation: c_int = 15;
pub const JobObjectCompletionFilter: c_int = 16;
pub const JobObjectCompletionCounter: c_int = 17;
pub const JobObjectReserved1Information: c_int = 18;
pub const JobObjectReserved2Information: c_int = 19;
pub const JobObjectReserved3Information: c_int = 20;
pub const JobObjectReserved4Information: c_int = 21;
pub const JobObjectReserved5Information: c_int = 22;
pub const JobObjectReserved6Information: c_int = 23;
pub const JobObjectReserved7Information: c_int = 24;
pub const JobObjectReserved8Information: c_int = 25;
pub const JobObjectReserved9Information: c_int = 26;
pub const MaxJobObjectInfoClass: c_int = 27;
pub const enum__JOBOBJECTINFOCLASS = c_int;
pub const JobObjectBasicAccountingInformation: c_int = 1;
pub const JobObjectBasicLimitInformation: c_int = 2;
pub const JobObjectBasicProcessIdList: c_int = 3;
pub const JobObjectBasicUIRestrictions: c_int = 4;
pub const JobObjectSecurityLimitInformation: c_int = 5;
pub const JobObjectEndOfJobTimeInformation: c_int = 6;
pub const JobObjectAssociateCompletionPortInformation: c_int = 7;
pub const JobObjectBasicAndIoAccountingInformation: c_int = 8;
pub const JobObjectExtendedLimitInformation: c_int = 9;
pub const JobObjectJobSetInformation: c_int = 10;
pub const JobObjectGroupInformation: c_int = 11;
pub const JobObjectNotificationLimitInformation: c_int = 12;
pub const JobObjectLimitViolationInformation: c_int = 13;
pub const JobObjectGroupInformationEx: c_int = 14;
pub const JobObjectCpuRateControlInformation: c_int = 15;
pub const JobObjectCompletionFilter: c_int = 16;
pub const JobObjectCompletionCounter: c_int = 17;
pub const JobObjectReserved1Information: c_int = 18;
pub const JobObjectReserved2Information: c_int = 19;
pub const JobObjectReserved3Information: c_int = 20;
pub const JobObjectReserved4Information: c_int = 21;
pub const JobObjectReserved5Information: c_int = 22;
pub const JobObjectReserved6Information: c_int = 23;
pub const JobObjectReserved7Information: c_int = 24;
pub const JobObjectReserved8Information: c_int = 25;
pub const JobObjectReserved9Information: c_int = 26;
pub const MaxJobObjectInfoClass: c_int = 27;
pub const enum__JOBOBJECTINFOCLASS = c_int;
pub const JOBOBJECTINFOCLASS = enum__JOBOBJECTINFOCLASS;
pub const FirmwareTypeUnknown = enum__FIRMWARE_TYPE.FirmwareTypeUnknown;
pub const FirmwareTypeBios = enum__FIRMWARE_TYPE.FirmwareTypeBios;
pub const FirmwareTypeUefi = enum__FIRMWARE_TYPE.FirmwareTypeUefi;
pub const FirmwareTypeMax = enum__FIRMWARE_TYPE.FirmwareTypeMax;
pub const enum__FIRMWARE_TYPE = extern enum {
FirmwareTypeUnknown,
FirmwareTypeBios,
FirmwareTypeUefi,
FirmwareTypeMax,
};
pub const FIRMWARE_TYPE = enum__FIRMWARE_TYPE;
pub const PFIRMWARE_TYPE = ?&enum__FIRMWARE_TYPE;
pub const RelationProcessorCore: c_int = 0;
pub const RelationNumaNode: c_int = 1;
pub const RelationCache: c_int = 2;
pub const RelationProcessorPackage: c_int = 3;
pub const RelationGroup: c_int = 4;
pub const RelationAll: c_int = 65535;
pub const enum__LOGICAL_PROCESSOR_RELATIONSHIP = c_int;
pub const RelationProcessorCore: c_int = 0;
pub const RelationNumaNode: c_int = 1;
pub const RelationCache: c_int = 2;
pub const RelationProcessorPackage: c_int = 3;
pub const RelationGroup: c_int = 4;
pub const RelationAll: c_int = 65535;
pub const enum__LOGICAL_PROCESSOR_RELATIONSHIP = c_int;
pub const LOGICAL_PROCESSOR_RELATIONSHIP = enum__LOGICAL_PROCESSOR_RELATIONSHIP;
pub const CacheUnified = enum__PROCESSOR_CACHE_TYPE.CacheUnified;
pub const CacheInstruction = enum__PROCESSOR_CACHE_TYPE.CacheInstruction;
pub const CacheData = enum__PROCESSOR_CACHE_TYPE.CacheData;
pub const CacheTrace = enum__PROCESSOR_CACHE_TYPE.CacheTrace;
pub const enum__PROCESSOR_CACHE_TYPE = extern enum {
CacheUnified,
CacheInstruction,
CacheData,
CacheTrace,
};
pub const PROCESSOR_CACHE_TYPE = enum__PROCESSOR_CACHE_TYPE;
pub const struct__CACHE_DESCRIPTOR = extern struct {
Level: BYTE,
Associativity: BYTE,
LineSize: WORD,
Size: DWORD,
Type: PROCESSOR_CACHE_TYPE,
};
pub const CACHE_DESCRIPTOR = struct__CACHE_DESCRIPTOR;
pub const PCACHE_DESCRIPTOR = ?&struct__CACHE_DESCRIPTOR;
pub const struct__SYSTEM_LOGICAL_PROCESSOR_INFORMATION = @OpaqueType();
pub const SYSTEM_LOGICAL_PROCESSOR_INFORMATION = struct__SYSTEM_LOGICAL_PROCESSOR_INFORMATION;
pub const PSYSTEM_LOGICAL_PROCESSOR_INFORMATION = ?&struct__SYSTEM_LOGICAL_PROCESSOR_INFORMATION;
pub const struct__PROCESSOR_RELATIONSHIP = extern struct {
Flags: BYTE,
Reserved: [21]BYTE,
GroupCount: WORD,
GroupMask: [1]GROUP_AFFINITY,
};
pub const PROCESSOR_RELATIONSHIP = struct__PROCESSOR_RELATIONSHIP;
pub const PPROCESSOR_RELATIONSHIP = ?&struct__PROCESSOR_RELATIONSHIP;
pub const struct__NUMA_NODE_RELATIONSHIP = extern struct {
NodeNumber: DWORD,
Reserved: [20]BYTE,
GroupMask: GROUP_AFFINITY,
};
pub const NUMA_NODE_RELATIONSHIP = struct__NUMA_NODE_RELATIONSHIP;
pub const PNUMA_NODE_RELATIONSHIP = ?&struct__NUMA_NODE_RELATIONSHIP;
pub const struct__CACHE_RELATIONSHIP = extern struct {
Level: BYTE,
Associativity: BYTE,
LineSize: WORD,
CacheSize: DWORD,
Type: PROCESSOR_CACHE_TYPE,
Reserved: [20]BYTE,
GroupMask: GROUP_AFFINITY,
};
pub const CACHE_RELATIONSHIP = struct__CACHE_RELATIONSHIP;
pub const PCACHE_RELATIONSHIP = ?&struct__CACHE_RELATIONSHIP;
pub const struct__PROCESSOR_GROUP_INFO = extern struct {
MaximumProcessorCount: BYTE,
ActiveProcessorCount: BYTE,
Reserved: [38]BYTE,
ActiveProcessorMask: KAFFINITY,
};
pub const PROCESSOR_GROUP_INFO = struct__PROCESSOR_GROUP_INFO;
pub const PPROCESSOR_GROUP_INFO = ?&struct__PROCESSOR_GROUP_INFO;
pub const struct__GROUP_RELATIONSHIP = extern struct {
MaximumGroupCount: WORD,
ActiveGroupCount: WORD,
Reserved: [20]BYTE,
GroupInfo: [1]PROCESSOR_GROUP_INFO,
};
pub const GROUP_RELATIONSHIP = struct__GROUP_RELATIONSHIP;
pub const PGROUP_RELATIONSHIP = ?&struct__GROUP_RELATIONSHIP;
pub const struct__SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = @OpaqueType();
pub const SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = struct__SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX;
pub const PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX = ?&struct__SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX;
pub const struct__SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = extern struct {
CycleTime: DWORD64,
};
pub const SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = struct__SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION;
pub const PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION = ?&struct__SYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION;
pub const struct__XSTATE_FEATURE = extern struct {
Offset: DWORD,
Size: DWORD,
};
pub const XSTATE_FEATURE = struct__XSTATE_FEATURE;
pub const PXSTATE_FEATURE = ?&struct__XSTATE_FEATURE;
pub const struct__XSTATE_CONFIGURATION = @OpaqueType();
pub const XSTATE_CONFIGURATION = struct__XSTATE_CONFIGURATION;
pub const PXSTATE_CONFIGURATION = ?&struct__XSTATE_CONFIGURATION;
pub const struct__MEMORY_BASIC_INFORMATION = extern struct {
BaseAddress: PVOID,
AllocationBase: PVOID,
AllocationProtect: DWORD,
RegionSize: SIZE_T,
State: DWORD,
Protect: DWORD,
Type: DWORD,
};
pub const MEMORY_BASIC_INFORMATION = struct__MEMORY_BASIC_INFORMATION;
pub const PMEMORY_BASIC_INFORMATION = ?&struct__MEMORY_BASIC_INFORMATION;
pub const struct__MEMORY_BASIC_INFORMATION32 = extern struct {
BaseAddress: DWORD,
AllocationBase: DWORD,
AllocationProtect: DWORD,
RegionSize: DWORD,
State: DWORD,
Protect: DWORD,
Type: DWORD,
};
pub const MEMORY_BASIC_INFORMATION32 = struct__MEMORY_BASIC_INFORMATION32;
pub const PMEMORY_BASIC_INFORMATION32 = ?&struct__MEMORY_BASIC_INFORMATION32;
pub const struct__MEMORY_BASIC_INFORMATION64 = extern struct {
BaseAddress: ULONGLONG,
AllocationBase: ULONGLONG,
AllocationProtect: DWORD,
__alignment1: DWORD,
RegionSize: ULONGLONG,
State: DWORD,
Protect: DWORD,
Type: DWORD,
__alignment2: DWORD,
};
pub const MEMORY_BASIC_INFORMATION64 = struct__MEMORY_BASIC_INFORMATION64;
pub const PMEMORY_BASIC_INFORMATION64 = ?&struct__MEMORY_BASIC_INFORMATION64;
pub const struct__FILE_ID_128 = extern struct {
Identifier: [16]BYTE,
};
pub const FILE_ID_128 = struct__FILE_ID_128;
pub const PFILE_ID_128 = ?&struct__FILE_ID_128;
pub const struct__FILE_NOTIFY_INFORMATION = extern struct {
NextEntryOffset: DWORD,
Action: DWORD,
FileNameLength: DWORD,
FileName: [1]WCHAR,
};
pub const FILE_NOTIFY_INFORMATION = struct__FILE_NOTIFY_INFORMATION;
pub const PFILE_NOTIFY_INFORMATION = ?&struct__FILE_NOTIFY_INFORMATION;
pub const struct__REPARSE_GUID_DATA_BUFFER = extern struct {
ReparseTag: DWORD,
ReparseDataLength: WORD,
Reserved: WORD,
ReparseGuid: GUID,
GenericReparseBuffer: extern struct {
DataBuffer: [1]BYTE,
},
};
pub const REPARSE_GUID_DATA_BUFFER = struct__REPARSE_GUID_DATA_BUFFER;
pub const PREPARSE_GUID_DATA_BUFFER = ?&struct__REPARSE_GUID_DATA_BUFFER;
pub const struct__SCRUB_DATA_INPUT = extern struct {
Size: DWORD,
Flags: DWORD,
MaximumIos: DWORD,
Reserved: [17]DWORD,
ResumeContext: [816]BYTE,
};
pub const SCRUB_DATA_INPUT = struct__SCRUB_DATA_INPUT;
pub const PSCRUB_DATA_INPUT = ?&struct__SCRUB_DATA_INPUT;
pub const struct__SCRUB_PARITY_EXTENT = extern struct {
Offset: LONGLONG,
Length: ULONGLONG,
};
pub const SCRUB_PARITY_EXTENT = struct__SCRUB_PARITY_EXTENT;
pub const PSCRUB_PARITY_EXTENT = ?&struct__SCRUB_PARITY_EXTENT;
pub const struct__SCRUB_PARITY_EXTENT_DATA = extern struct {
Size: WORD,
Flags: WORD,
NumberOfParityExtents: WORD,
MaximumNumberOfParityExtents: WORD,
ParityExtents: [1]SCRUB_PARITY_EXTENT,
};
pub const SCRUB_PARITY_EXTENT_DATA = struct__SCRUB_PARITY_EXTENT_DATA;
pub const PSCRUB_PARITY_EXTENT_DATA = ?&struct__SCRUB_PARITY_EXTENT_DATA;
pub const struct__SCRUB_DATA_OUTPUT = extern struct {
Size: DWORD,
Flags: DWORD,
Status: DWORD,
ErrorFileOffset: ULONGLONG,
ErrorLength: ULONGLONG,
NumberOfBytesRepaired: ULONGLONG,
NumberOfBytesFailed: ULONGLONG,
InternalFileReference: ULONGLONG,
ResumeContextLength: WORD,
ParityExtentDataOffset: WORD,
Reserved: [5]DWORD,
ResumeContext: [816]BYTE,
};
pub const SCRUB_DATA_OUTPUT = struct__SCRUB_DATA_OUTPUT;
pub const PSCRUB_DATA_OUTPUT = ?&struct__SCRUB_DATA_OUTPUT;
pub const SharedVirtualDisksUnsupported: c_int = 0;
pub const SharedVirtualDisksSupported: c_int = 1;
pub const enum__SharedVirtualDiskSupportType = c_int;
pub const SharedVirtualDisksUnsupported: c_int = 0;
pub const SharedVirtualDisksSupported: c_int = 1;
pub const enum__SharedVirtualDiskSupportType = c_int;
pub const SharedVirtualDiskSupportType = enum__SharedVirtualDiskSupportType;
pub const SharedVirtualDiskHandleStateNone: c_int = 0;
pub const SharedVirtualDiskHandleStateFileShared: c_int = 1;
pub const SharedVirtualDiskHandleStateHandleShared: c_int = 3;
pub const enum__SharedVirtualDiskHandleState = c_int;
pub const SharedVirtualDiskHandleStateNone: c_int = 0;
pub const SharedVirtualDiskHandleStateFileShared: c_int = 1;
pub const SharedVirtualDiskHandleStateHandleShared: c_int = 3;
pub const enum__SharedVirtualDiskHandleState = c_int;
pub const SharedVirtualDiskHandleState = enum__SharedVirtualDiskHandleState;
pub const struct__SHARED_VIRTUAL_DISK_SUPPORT = extern struct {
SharedVirtualDiskSupport: SharedVirtualDiskSupportType,
HandleState: SharedVirtualDiskHandleState,
};
pub const SHARED_VIRTUAL_DISK_SUPPORT = struct__SHARED_VIRTUAL_DISK_SUPPORT;
pub const PSHARED_VIRTUAL_DISK_SUPPORT = ?&struct__SHARED_VIRTUAL_DISK_SUPPORT;
pub extern const GUID_MAX_POWER_SAVINGS: GUID;
pub extern const GUID_MIN_POWER_SAVINGS: GUID;
pub extern const GUID_TYPICAL_POWER_SAVINGS: GUID;
pub extern const NO_SUBGROUP_GUID: GUID;
pub extern const ALL_POWERSCHEMES_GUID: GUID;
pub extern const GUID_POWERSCHEME_PERSONALITY: GUID;
pub extern const GUID_ACTIVE_POWERSCHEME: GUID;
pub extern const GUID_IDLE_RESILIENCY_SUBGROUP: GUID;
pub extern const GUID_IDLE_RESILIENCY_PERIOD: GUID;
pub extern const GUID_IDLE_RESILIENCY_PLATFORM_STATE: GUID;
pub extern const GUID_DISK_COALESCING_POWERDOWN_TIMEOUT: GUID;
pub extern const GUID_EXECUTION_REQUIRED_REQUEST_TIMEOUT: GUID;
pub extern const GUID_VIDEO_SUBGROUP: GUID;
pub extern const GUID_VIDEO_POWERDOWN_TIMEOUT: GUID;
pub extern const GUID_VIDEO_ANNOYANCE_TIMEOUT: GUID;
pub extern const GUID_VIDEO_ADAPTIVE_PERCENT_INCREASE: GUID;
pub extern const GUID_VIDEO_DIM_TIMEOUT: GUID;
pub extern const GUID_VIDEO_ADAPTIVE_POWERDOWN: GUID;
pub extern const GUID_MONITOR_POWER_ON: GUID;
pub extern const GUID_DEVICE_POWER_POLICY_VIDEO_BRIGHTNESS: GUID;
pub extern const GUID_DEVICE_POWER_POLICY_VIDEO_DIM_BRIGHTNESS: GUID;
pub extern const GUID_VIDEO_CURRENT_MONITOR_BRIGHTNESS: GUID;
pub extern const GUID_VIDEO_ADAPTIVE_DISPLAY_BRIGHTNESS: GUID;
pub extern const GUID_CONSOLE_DISPLAY_STATE: GUID;
pub extern const GUID_ALLOW_DISPLAY_REQUIRED: GUID;
pub extern const GUID_VIDEO_CONSOLE_LOCK_TIMEOUT: GUID;
pub extern const GUID_ADAPTIVE_POWER_BEHAVIOR_SUBGROUP: GUID;
pub extern const GUID_NON_ADAPTIVE_INPUT_TIMEOUT: GUID;
pub extern const GUID_DISK_SUBGROUP: GUID;
pub extern const GUID_DISK_POWERDOWN_TIMEOUT: GUID;
pub extern const GUID_DISK_IDLE_TIMEOUT: GUID;
pub extern const GUID_DISK_BURST_IGNORE_THRESHOLD: GUID;
pub extern const GUID_DISK_ADAPTIVE_POWERDOWN: GUID;
pub extern const GUID_SLEEP_SUBGROUP: GUID;
pub extern const GUID_SLEEP_IDLE_THRESHOLD: GUID;
pub extern const GUID_STANDBY_TIMEOUT: GUID;
pub extern const GUID_UNATTEND_SLEEP_TIMEOUT: GUID;
pub extern const GUID_HIBERNATE_TIMEOUT: GUID;
pub extern const GUID_HIBERNATE_FASTS4_POLICY: GUID;
pub extern const GUID_CRITICAL_POWER_TRANSITION: GUID;
pub extern const GUID_SYSTEM_AWAYMODE: GUID;
pub extern const GUID_ALLOW_AWAYMODE: GUID;
pub extern const GUID_VIDEO_FULLSCREEN_PLAYBACK: GUID;
pub extern const GUID_AUDIO_PLAYBACK: GUID;
pub extern const GUID_ALLOW_STANDBY_STATES: GUID;
pub extern const GUID_ALLOW_RTC_WAKE: GUID;
pub extern const GUID_ALLOW_SYSTEM_REQUIRED: GUID;
pub extern const GUID_SYSTEM_BUTTON_SUBGROUP: GUID;
pub extern const GUID_POWERBUTTON_ACTION: GUID;
pub extern const GUID_SLEEPBUTTON_ACTION: GUID;
pub extern const GUID_USERINTERFACEBUTTON_ACTION: GUID;
pub extern const GUID_LIDCLOSE_ACTION: GUID;
pub extern const GUID_LIDOPEN_POWERSTATE: GUID;
pub extern const GUID_BATTERY_SUBGROUP: GUID;
pub extern const GUID_BATTERY_DISCHARGE_ACTION_0: GUID;
pub extern const GUID_BATTERY_DISCHARGE_LEVEL_0: GUID;
pub extern const GUID_BATTERY_DISCHARGE_FLAGS_0: GUID;
pub extern const GUID_BATTERY_DISCHARGE_ACTION_1: GUID;
pub extern const GUID_BATTERY_DISCHARGE_LEVEL_1: GUID;
pub extern const GUID_BATTERY_DISCHARGE_FLAGS_1: GUID;
pub extern const GUID_BATTERY_DISCHARGE_ACTION_2: GUID;
pub extern const GUID_BATTERY_DISCHARGE_LEVEL_2: GUID;
pub extern const GUID_BATTERY_DISCHARGE_FLAGS_2: GUID;
pub extern const GUID_BATTERY_DISCHARGE_ACTION_3: GUID;
pub extern const GUID_BATTERY_DISCHARGE_LEVEL_3: GUID;
pub extern const GUID_BATTERY_DISCHARGE_FLAGS_3: GUID;
pub extern const GUID_CS_BATTERY_SAVER_THRESHOLD: GUID;
pub extern const GUID_CS_BATTERY_SAVER_ACTION: GUID;
pub extern const GUID_CS_BATTERY_SAVER_TIMEOUT: GUID;
pub extern const GUID_PROCESSOR_SETTINGS_SUBGROUP: GUID;
pub extern const GUID_PROCESSOR_THROTTLE_POLICY: GUID;
pub extern const GUID_PROCESSOR_THROTTLE_MAXIMUM: GUID;
pub extern const GUID_PROCESSOR_THROTTLE_MINIMUM: GUID;
pub extern const GUID_PROCESSOR_ALLOW_THROTTLING: GUID;
pub extern const GUID_PROCESSOR_IDLESTATE_POLICY: GUID;
pub extern const GUID_PROCESSOR_PERFSTATE_POLICY: GUID;
pub extern const GUID_PROCESSOR_PERF_INCREASE_THRESHOLD: GUID;
pub extern const GUID_PROCESSOR_PERF_DECREASE_THRESHOLD: GUID;
pub extern const GUID_PROCESSOR_PERF_INCREASE_POLICY: GUID;
pub extern const GUID_PROCESSOR_PERF_DECREASE_POLICY: GUID;
pub extern const GUID_PROCESSOR_PERF_INCREASE_TIME: GUID;
pub extern const GUID_PROCESSOR_PERF_DECREASE_TIME: GUID;
pub extern const GUID_PROCESSOR_PERF_TIME_CHECK: GUID;
pub extern const GUID_PROCESSOR_PERF_BOOST_POLICY: GUID;
pub extern const GUID_PROCESSOR_PERF_BOOST_MODE: GUID;
pub extern const GUID_PROCESSOR_IDLE_ALLOW_SCALING: GUID;
pub extern const GUID_PROCESSOR_IDLE_DISABLE: GUID;
pub extern const GUID_PROCESSOR_IDLE_STATE_MAXIMUM: GUID;
pub extern const GUID_PROCESSOR_IDLE_TIME_CHECK: GUID;
pub extern const GUID_PROCESSOR_IDLE_DEMOTE_THRESHOLD: GUID;
pub extern const GUID_PROCESSOR_IDLE_PROMOTE_THRESHOLD: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_INCREASE_THRESHOLD: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_DECREASE_THRESHOLD: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_INCREASE_POLICY: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_DECREASE_POLICY: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_MAX_CORES: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_MIN_CORES: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_INCREASE_TIME: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_DECREASE_TIME: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_DECREASE_FACTOR: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_AFFINITY_HISTORY_THRESHOLD: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_AFFINITY_WEIGHTING: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_DECREASE_FACTOR: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_HISTORY_THRESHOLD: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_WEIGHTING: GUID;
pub extern const GUID_PROCESSOR_CORE_PARKING_OVER_UTILIZATION_THRESHOLD: GUID;
pub extern const GUID_PROCESSOR_PARKING_CORE_OVERRIDE: GUID;
pub extern const GUID_PROCESSOR_PARKING_PERF_STATE: GUID;
pub extern const GUID_PROCESSOR_PARKING_CONCURRENCY_THRESHOLD: GUID;
pub extern const GUID_PROCESSOR_PARKING_HEADROOM_THRESHOLD: GUID;
pub extern const GUID_PROCESSOR_PERF_HISTORY: GUID;
pub extern const GUID_PROCESSOR_PERF_INCREASE_HISTORY: GUID;
pub extern const GUID_PROCESSOR_PERF_DECREASE_HISTORY: GUID;
pub extern const GUID_PROCESSOR_PERF_CORE_PARKING_HISTORY: GUID;
pub extern const GUID_PROCESSOR_PERF_LATENCY_HINT: GUID;
pub extern const GUID_PROCESSOR_PERF_LATENCY_HINT_PERF: GUID;
pub extern const GUID_PROCESSOR_DISTRIBUTE_UTILITY: GUID;
pub extern const GUID_SYSTEM_COOLING_POLICY: GUID;
pub extern const GUID_LOCK_CONSOLE_ON_WAKE: GUID;
pub extern const GUID_DEVICE_IDLE_POLICY: GUID;
pub extern const GUID_ACDC_POWER_SOURCE: GUID;
pub extern const GUID_LIDSWITCH_STATE_CHANGE: GUID;
pub extern const GUID_BATTERY_PERCENTAGE_REMAINING: GUID;
pub extern const GUID_GLOBAL_USER_PRESENCE: GUID;
pub extern const GUID_SESSION_DISPLAY_STATUS: GUID;
pub extern const GUID_SESSION_USER_PRESENCE: GUID;
pub extern const GUID_IDLE_BACKGROUND_TASK: GUID;
pub extern const GUID_BACKGROUND_TASK_NOTIFICATION: GUID;
pub extern const GUID_APPLAUNCH_BUTTON: GUID;
pub extern const GUID_PCIEXPRESS_SETTINGS_SUBGROUP: GUID;
pub extern const GUID_PCIEXPRESS_ASPM_POLICY: GUID;
pub extern const GUID_ENABLE_SWITCH_FORCED_SHUTDOWN: GUID;
pub extern const GUID_INTSTEER_SUBGROUP: GUID;
pub extern const GUID_INTSTEER_MODE: GUID;
pub extern const GUID_INTSTEER_LOAD_PER_PROC_TRIGGER: GUID;
pub extern const GUID_INTSTEER_TIME_UNPARK_TRIGGER: GUID;
pub const PowerSystemUnspecified: c_int = 0;
pub const PowerSystemWorking: c_int = 1;
pub const PowerSystemSleeping1: c_int = 2;
pub const PowerSystemSleeping2: c_int = 3;
pub const PowerSystemSleeping3: c_int = 4;
pub const PowerSystemHibernate: c_int = 5;
pub const PowerSystemShutdown: c_int = 6;
pub const PowerSystemMaximum: c_int = 7;
pub const enum__SYSTEM_POWER_STATE = c_int;
pub const PowerSystemUnspecified: c_int = 0;
pub const PowerSystemWorking: c_int = 1;
pub const PowerSystemSleeping1: c_int = 2;
pub const PowerSystemSleeping2: c_int = 3;
pub const PowerSystemSleeping3: c_int = 4;
pub const PowerSystemHibernate: c_int = 5;
pub const PowerSystemShutdown: c_int = 6;
pub const PowerSystemMaximum: c_int = 7;
pub const enum__SYSTEM_POWER_STATE = c_int;
pub const SYSTEM_POWER_STATE = enum__SYSTEM_POWER_STATE;
pub const PowerSystemUnspecified: c_int = 0;
pub const PowerSystemWorking: c_int = 1;
pub const PowerSystemSleeping1: c_int = 2;
pub const PowerSystemSleeping2: c_int = 3;
pub const PowerSystemSleeping3: c_int = 4;
pub const PowerSystemHibernate: c_int = 5;
pub const PowerSystemShutdown: c_int = 6;
pub const PowerSystemMaximum: c_int = 7;
pub const enum__SYSTEM_POWER_STATE = c_int;
pub const PSYSTEM_POWER_STATE = ?&enum__SYSTEM_POWER_STATE;
pub const PowerActionNone: c_int = 0;
pub const PowerActionReserved: c_int = 1;
pub const PowerActionSleep: c_int = 2;
pub const PowerActionHibernate: c_int = 3;
pub const PowerActionShutdown: c_int = 4;
pub const PowerActionShutdownReset: c_int = 5;
pub const PowerActionShutdownOff: c_int = 6;
pub const PowerActionWarmEject: c_int = 7;
pub const POWER_ACTION = c_int;
pub const PPOWER_ACTION = ?&c_int;
pub const PowerDeviceUnspecified: c_int = 0;
pub const PowerDeviceD0: c_int = 1;
pub const PowerDeviceD1: c_int = 2;
pub const PowerDeviceD2: c_int = 3;
pub const PowerDeviceD3: c_int = 4;
pub const PowerDeviceMaximum: c_int = 5;
pub const enum__DEVICE_POWER_STATE = c_int;
pub const PowerDeviceUnspecified: c_int = 0;
pub const PowerDeviceD0: c_int = 1;
pub const PowerDeviceD1: c_int = 2;
pub const PowerDeviceD2: c_int = 3;
pub const PowerDeviceD3: c_int = 4;
pub const PowerDeviceMaximum: c_int = 5;
pub const enum__DEVICE_POWER_STATE = c_int;
pub const DEVICE_POWER_STATE = enum__DEVICE_POWER_STATE;
pub const PowerDeviceUnspecified: c_int = 0;
pub const PowerDeviceD0: c_int = 1;
pub const PowerDeviceD1: c_int = 2;
pub const PowerDeviceD2: c_int = 3;
pub const PowerDeviceD3: c_int = 4;
pub const PowerDeviceMaximum: c_int = 5;
pub const enum__DEVICE_POWER_STATE = c_int;
pub const PDEVICE_POWER_STATE = ?&enum__DEVICE_POWER_STATE;
pub const PowerMonitorOff: c_int = 0;
pub const PowerMonitorOn: c_int = 1;
pub const PowerMonitorDim: c_int = 2;
pub const enum__MONITOR_DISPLAY_STATE = c_int;
pub const PowerMonitorOff: c_int = 0;
pub const PowerMonitorOn: c_int = 1;
pub const PowerMonitorDim: c_int = 2;
pub const enum__MONITOR_DISPLAY_STATE = c_int;
pub const MONITOR_DISPLAY_STATE = enum__MONITOR_DISPLAY_STATE;
pub const PowerMonitorOff: c_int = 0;
pub const PowerMonitorOn: c_int = 1;
pub const PowerMonitorDim: c_int = 2;
pub const enum__MONITOR_DISPLAY_STATE = c_int;
pub const PMONITOR_DISPLAY_STATE = ?&enum__MONITOR_DISPLAY_STATE;
pub const PowerUserPresent: c_int = 0;
pub const PowerUserNotPresent: c_int = 1;
pub const PowerUserInactive: c_int = 2;
pub const PowerUserMaximum: c_int = 3;
pub const PowerUserInvalid: c_int = 3;
pub const enum__USER_ACTIVITY_PRESENCE = c_int;
pub const PowerUserPresent: c_int = 0;
pub const PowerUserNotPresent: c_int = 1;
pub const PowerUserInactive: c_int = 2;
pub const PowerUserMaximum: c_int = 3;
pub const PowerUserInvalid: c_int = 3;
pub const enum__USER_ACTIVITY_PRESENCE = c_int;
pub const USER_ACTIVITY_PRESENCE = enum__USER_ACTIVITY_PRESENCE;
pub const PowerUserPresent: c_int = 0;
pub const PowerUserNotPresent: c_int = 1;
pub const PowerUserInactive: c_int = 2;
pub const PowerUserMaximum: c_int = 3;
pub const PowerUserInvalid: c_int = 3;
pub const enum__USER_ACTIVITY_PRESENCE = c_int;
pub const PUSER_ACTIVITY_PRESENCE = ?&enum__USER_ACTIVITY_PRESENCE;
pub const EXECUTION_STATE = DWORD;
pub const PEXECUTION_STATE = ?&DWORD;
pub const LT_DONT_CARE = 0;
pub const LT_LOWEST_LATENCY = 1;
pub const LATENCY_TIME = extern enum {
LT_DONT_CARE,
LT_LOWEST_LATENCY,
};
pub const PowerRequestDisplayRequired = enum__POWER_REQUEST_TYPE.PowerRequestDisplayRequired;
pub const PowerRequestSystemRequired = enum__POWER_REQUEST_TYPE.PowerRequestSystemRequired;
pub const PowerRequestAwayModeRequired = enum__POWER_REQUEST_TYPE.PowerRequestAwayModeRequired;
pub const PowerRequestExecutionRequired = enum__POWER_REQUEST_TYPE.PowerRequestExecutionRequired;
pub const enum__POWER_REQUEST_TYPE = extern enum {
PowerRequestDisplayRequired,
PowerRequestSystemRequired,
PowerRequestAwayModeRequired,
PowerRequestExecutionRequired,
};
pub const POWER_REQUEST_TYPE = enum__POWER_REQUEST_TYPE;
pub const PPOWER_REQUEST_TYPE = ?&enum__POWER_REQUEST_TYPE;
pub const struct_CM_Power_Data_s = extern struct {
PD_Size: DWORD,
PD_MostRecentPowerState: DEVICE_POWER_STATE,
PD_Capabilities: DWORD,
PD_D1Latency: DWORD,
PD_D2Latency: DWORD,
PD_D3Latency: DWORD,
PD_PowerStateMapping: [7]DEVICE_POWER_STATE,
PD_DeepestSystemWake: SYSTEM_POWER_STATE,
};
pub const CM_POWER_DATA = struct_CM_Power_Data_s;
pub const PCM_POWER_DATA = ?&struct_CM_Power_Data_s;
pub const SystemPowerPolicyAc = 0;
pub const SystemPowerPolicyDc = 1;
pub const VerifySystemPolicyAc = 2;
pub const VerifySystemPolicyDc = 3;
pub const SystemPowerCapabilities = 4;
pub const SystemBatteryState = 5;
pub const SystemPowerStateHandler = 6;
pub const ProcessorStateHandler = 7;
pub const SystemPowerPolicyCurrent = 8;
pub const AdministratorPowerPolicy = 9;
pub const SystemReserveHiberFile = 10;
pub const ProcessorInformation = 11;
pub const SystemPowerInformation = 12;
pub const ProcessorStateHandler2 = 13;
pub const LastWakeTime = 14;
pub const LastSleepTime = 15;
pub const SystemExecutionState = 16;
pub const SystemPowerStateNotifyHandler = 17;
pub const ProcessorPowerPolicyAc = 18;
pub const ProcessorPowerPolicyDc = 19;
pub const VerifyProcessorPowerPolicyAc = 20;
pub const VerifyProcessorPowerPolicyDc = 21;
pub const ProcessorPowerPolicyCurrent = 22;
pub const SystemPowerStateLogging = 23;
pub const SystemPowerLoggingEntry = 24;
pub const SetPowerSettingValue = 25;
pub const NotifyUserPowerSetting = 26;
pub const PowerInformationLevelUnused0 = 27;
pub const SystemMonitorHiberBootPowerOff = 28;
pub const SystemVideoState = 29;
pub const TraceApplicationPowerMessage = 30;
pub const TraceApplicationPowerMessageEnd = 31;
pub const ProcessorPerfStates = 32;
pub const ProcessorIdleStates = 33;
pub const ProcessorCap = 34;
pub const SystemWakeSource = 35;
pub const SystemHiberFileInformation = 36;
pub const TraceServicePowerMessage = 37;
pub const ProcessorLoad = 38;
pub const PowerShutdownNotification = 39;
pub const MonitorCapabilities = 40;
pub const SessionPowerInit = 41;
pub const SessionDisplayState = 42;
pub const PowerRequestCreate = 43;
pub const PowerRequestAction = 44;
pub const GetPowerRequestList = 45;
pub const ProcessorInformationEx = 46;
pub const NotifyUserModeLegacyPowerEvent = 47;
pub const GroupPark = 48;
pub const ProcessorIdleDomains = 49;
pub const WakeTimerList = 50;
pub const SystemHiberFileSize = 51;
pub const ProcessorIdleStatesHv = 52;
pub const ProcessorPerfStatesHv = 53;
pub const ProcessorPerfCapHv = 54;
pub const ProcessorSetIdle = 55;
pub const LogicalProcessorIdling = 56;
pub const UserPresence = 57;
pub const PowerSettingNotificationName = 58;
pub const GetPowerSettingValue = 59;
pub const IdleResiliency = 60;
pub const SessionRITState = 61;
pub const SessionConnectNotification = 62;
pub const SessionPowerCleanup = 63;
pub const SessionLockState = 64;
pub const SystemHiberbootState = 65;
pub const PlatformInformation = 66;
pub const PdcInvocation = 67;
pub const MonitorInvocation = 68;
pub const FirmwareTableInformationRegistered = 69;
pub const SetShutdownSelectedTime = 70;
pub const SuspendResumeInvocation = 71;
pub const PlmPowerRequestCreate = 72;
pub const ScreenOff = 73;
pub const CsDeviceNotification = 74;
pub const PlatformRole = 75;
pub const LastResumePerformance = 76;
pub const DisplayBurst = 77;
pub const ExitLatencySamplingPercentage = 78;
pub const RegisterSpmPowerSettings = 79;
pub const PlatformIdleStates = 80;
pub const ProcessorIdleVeto = 81;
pub const PlatformIdleVeto = 82;
pub const SystemBatteryStatePrecise = 83;
pub const ThermalEvent = 84;
pub const PowerInformationLevelMaximum = 85;
pub const POWER_INFORMATION_LEVEL = extern enum {
SystemPowerPolicyAc,
SystemPowerPolicyDc,
VerifySystemPolicyAc,
VerifySystemPolicyDc,
SystemPowerCapabilities,
SystemBatteryState,
SystemPowerStateHandler,
ProcessorStateHandler,
SystemPowerPolicyCurrent,
AdministratorPowerPolicy,
SystemReserveHiberFile,
ProcessorInformation,
SystemPowerInformation,
ProcessorStateHandler2,
LastWakeTime,
LastSleepTime,
SystemExecutionState,
SystemPowerStateNotifyHandler,
ProcessorPowerPolicyAc,
ProcessorPowerPolicyDc,
VerifyProcessorPowerPolicyAc,
VerifyProcessorPowerPolicyDc,
ProcessorPowerPolicyCurrent,
SystemPowerStateLogging,
SystemPowerLoggingEntry,
SetPowerSettingValue,
NotifyUserPowerSetting,
PowerInformationLevelUnused0,
SystemMonitorHiberBootPowerOff,
SystemVideoState,
TraceApplicationPowerMessage,
TraceApplicationPowerMessageEnd,
ProcessorPerfStates,
ProcessorIdleStates,
ProcessorCap,
SystemWakeSource,
SystemHiberFileInformation,
TraceServicePowerMessage,
ProcessorLoad,
PowerShutdownNotification,
MonitorCapabilities,
SessionPowerInit,
SessionDisplayState,
PowerRequestCreate,
PowerRequestAction,
GetPowerRequestList,
ProcessorInformationEx,
NotifyUserModeLegacyPowerEvent,
GroupPark,
ProcessorIdleDomains,
WakeTimerList,
SystemHiberFileSize,
ProcessorIdleStatesHv,
ProcessorPerfStatesHv,
ProcessorPerfCapHv,
ProcessorSetIdle,
LogicalProcessorIdling,
UserPresence,
PowerSettingNotificationName,
GetPowerSettingValue,
IdleResiliency,
SessionRITState,
SessionConnectNotification,
SessionPowerCleanup,
SessionLockState,
SystemHiberbootState,
PlatformInformation,
PdcInvocation,
MonitorInvocation,
FirmwareTableInformationRegistered,
SetShutdownSelectedTime,
SuspendResumeInvocation,
PlmPowerRequestCreate,
ScreenOff,
CsDeviceNotification,
PlatformRole,
LastResumePerformance,
DisplayBurst,
ExitLatencySamplingPercentage,
RegisterSpmPowerSettings,
PlatformIdleStates,
ProcessorIdleVeto,
PlatformIdleVeto,
SystemBatteryStatePrecise,
ThermalEvent,
PowerInformationLevelMaximum,
};
pub const UserNotPresent: c_int = 0;
pub const UserPresent: c_int = 1;
pub const UserUnknown: c_int = 255;
pub const POWER_USER_PRESENCE_TYPE = c_int;
pub const PPOWER_USER_PRESENCE_TYPE = ?&c_int;
pub const struct__POWER_USER_PRESENCE = extern struct {
UserPresence: POWER_USER_PRESENCE_TYPE,
};
pub const POWER_USER_PRESENCE = struct__POWER_USER_PRESENCE;
pub const PPOWER_USER_PRESENCE = ?&struct__POWER_USER_PRESENCE;
pub const struct__POWER_SESSION_CONNECT = extern struct {
Connected: BOOLEAN,
Console: BOOLEAN,
};
pub const POWER_SESSION_CONNECT = struct__POWER_SESSION_CONNECT;
pub const PPOWER_SESSION_CONNECT = ?&struct__POWER_SESSION_CONNECT;
pub const struct__POWER_SESSION_TIMEOUTS = extern struct {
InputTimeout: DWORD,
DisplayTimeout: DWORD,
};
pub const POWER_SESSION_TIMEOUTS = struct__POWER_SESSION_TIMEOUTS;
pub const PPOWER_SESSION_TIMEOUTS = ?&struct__POWER_SESSION_TIMEOUTS;
pub const struct__POWER_SESSION_RIT_STATE = extern struct {
Active: BOOLEAN,
LastInputTime: DWORD,
};
pub const POWER_SESSION_RIT_STATE = struct__POWER_SESSION_RIT_STATE;
pub const PPOWER_SESSION_RIT_STATE = ?&struct__POWER_SESSION_RIT_STATE;
pub const struct__POWER_SESSION_WINLOGON = extern struct {
SessionId: DWORD,
Console: BOOLEAN,
Locked: BOOLEAN,
};
pub const POWER_SESSION_WINLOGON = struct__POWER_SESSION_WINLOGON;
pub const PPOWER_SESSION_WINLOGON = ?&struct__POWER_SESSION_WINLOGON;
pub const struct__POWER_IDLE_RESILIENCY = extern struct {
CoalescingTimeout: DWORD,
IdleResiliencyPeriod: DWORD,
};
pub const POWER_IDLE_RESILIENCY = struct__POWER_IDLE_RESILIENCY;
pub const PPOWER_IDLE_RESILIENCY = ?&struct__POWER_IDLE_RESILIENCY;
pub const MonitorRequestReasonUnknown = 0;
pub const MonitorRequestReasonPowerButton = 1;
pub const MonitorRequestReasonRemoteConnection = 2;
pub const MonitorRequestReasonScMonitorpower = 3;
pub const MonitorRequestReasonUserInput = 4;
pub const MonitorRequestReasonAcDcDisplayBurst = 5;
pub const MonitorRequestReasonUserDisplayBurst = 6;
pub const MonitorRequestReasonPoSetSystemState = 7;
pub const MonitorRequestReasonSetThreadExecutionState = 8;
pub const MonitorRequestReasonFullWake = 9;
pub const MonitorRequestReasonSessionUnlock = 10;
pub const MonitorRequestReasonScreenOffRequest = 11;
pub const MonitorRequestReasonIdleTimeout = 12;
pub const MonitorRequestReasonPolicyChange = 13;
pub const MonitorRequestReasonSleepButton = 14;
pub const MonitorRequestReasonLid = 15;
pub const MonitorRequestReasonBatteryCountChange = 16;
pub const MonitorRequestReasonMax = 17;
pub const POWER_MONITOR_REQUEST_REASON = extern enum {
MonitorRequestReasonUnknown,
MonitorRequestReasonPowerButton,
MonitorRequestReasonRemoteConnection,
MonitorRequestReasonScMonitorpower,
MonitorRequestReasonUserInput,
MonitorRequestReasonAcDcDisplayBurst,
MonitorRequestReasonUserDisplayBurst,
MonitorRequestReasonPoSetSystemState,
MonitorRequestReasonSetThreadExecutionState,
MonitorRequestReasonFullWake,
MonitorRequestReasonSessionUnlock,
MonitorRequestReasonScreenOffRequest,
MonitorRequestReasonIdleTimeout,
MonitorRequestReasonPolicyChange,
MonitorRequestReasonSleepButton,
MonitorRequestReasonLid,
MonitorRequestReasonBatteryCountChange,
MonitorRequestReasonMax,
};
pub const struct__POWER_MONITOR_INVOCATION = extern struct {
On: BOOLEAN,
Console: BOOLEAN,
RequestReason: POWER_MONITOR_REQUEST_REASON,
};
pub const POWER_MONITOR_INVOCATION = struct__POWER_MONITOR_INVOCATION;
pub const PPOWER_MONITOR_INVOCATION = ?&struct__POWER_MONITOR_INVOCATION;
pub const struct__RESUME_PERFORMANCE = extern struct {
PostTimeMs: DWORD,
TotalResumeTimeMs: ULONGLONG,
ResumeCompleteTimestamp: ULONGLONG,
};
pub const RESUME_PERFORMANCE = struct__RESUME_PERFORMANCE;
pub const PRESUME_PERFORMANCE = ?&struct__RESUME_PERFORMANCE;
pub const PoAc = 0;
pub const PoDc = 1;
pub const PoHot = 2;
pub const PoConditionMaximum = 3;
pub const SYSTEM_POWER_CONDITION = extern enum {
PoAc,
PoDc,
PoHot,
PoConditionMaximum,
};
pub const SET_POWER_SETTING_VALUE = extern struct {
Version: DWORD,
Guid: GUID,
PowerCondition: SYSTEM_POWER_CONDITION,
DataLength: DWORD,
Data: [1]BYTE,
};
pub const PSET_POWER_SETTING_VALUE = ?&extern struct {
Version: DWORD,
Guid: GUID,
PowerCondition: SYSTEM_POWER_CONDITION,
DataLength: DWORD,
Data: [1]BYTE,
};
pub const NOTIFY_USER_POWER_SETTING = extern struct {
Guid: GUID,
};
pub const PNOTIFY_USER_POWER_SETTING = ?&extern struct {
Guid: GUID,
};
pub const struct__APPLICATIONLAUNCH_SETTING_VALUE = @OpaqueType();
pub const APPLICATIONLAUNCH_SETTING_VALUE = struct__APPLICATIONLAUNCH_SETTING_VALUE;
pub const PAPPLICATIONLAUNCH_SETTING_VALUE = ?&struct__APPLICATIONLAUNCH_SETTING_VALUE;
pub const PlatformRoleUnspecified: c_int = 0;
pub const PlatformRoleDesktop: c_int = 1;
pub const PlatformRoleMobile: c_int = 2;
pub const PlatformRoleWorkstation: c_int = 3;
pub const PlatformRoleEnterpriseServer: c_int = 4;
pub const PlatformRoleSOHOServer: c_int = 5;
pub const PlatformRoleAppliancePC: c_int = 6;
pub const PlatformRolePerformanceServer: c_int = 7;
pub const PlatformRoleSlate: c_int = 8;
pub const PlatformRoleMaximum: c_int = 9;
pub const enum__POWER_PLATFORM_ROLE = c_int;
pub const PlatformRoleUnspecified: c_int = 0;
pub const PlatformRoleDesktop: c_int = 1;
pub const PlatformRoleMobile: c_int = 2;
pub const PlatformRoleWorkstation: c_int = 3;
pub const PlatformRoleEnterpriseServer: c_int = 4;
pub const PlatformRoleSOHOServer: c_int = 5;
pub const PlatformRoleAppliancePC: c_int = 6;
pub const PlatformRolePerformanceServer: c_int = 7;
pub const PlatformRoleSlate: c_int = 8;
pub const PlatformRoleMaximum: c_int = 9;
pub const enum__POWER_PLATFORM_ROLE = c_int;
pub const POWER_PLATFORM_ROLE = enum__POWER_PLATFORM_ROLE;
pub const PlatformRoleUnspecified: c_int = 0;
pub const PlatformRoleDesktop: c_int = 1;
pub const PlatformRoleMobile: c_int = 2;
pub const PlatformRoleWorkstation: c_int = 3;
pub const PlatformRoleEnterpriseServer: c_int = 4;
pub const PlatformRoleSOHOServer: c_int = 5;
pub const PlatformRoleAppliancePC: c_int = 6;
pub const PlatformRolePerformanceServer: c_int = 7;
pub const PlatformRoleSlate: c_int = 8;
pub const PlatformRoleMaximum: c_int = 9;
pub const enum__POWER_PLATFORM_ROLE = c_int;
pub const PPOWER_PLATFORM_ROLE = ?&enum__POWER_PLATFORM_ROLE;
pub const struct__POWER_PLATFORM_INFORMATION = extern struct {
AoAc: BOOLEAN,
};
pub const POWER_PLATFORM_INFORMATION = struct__POWER_PLATFORM_INFORMATION;
pub const PPOWER_PLATFORM_INFORMATION = ?&struct__POWER_PLATFORM_INFORMATION;
pub const BATTERY_REPORTING_SCALE = extern struct {
Granularity: DWORD,
Capacity: DWORD,
};
pub const PBATTERY_REPORTING_SCALE = ?&extern struct {
Granularity: DWORD,
Capacity: DWORD,
};
pub const PPM_WMI_LEGACY_PERFSTATE = extern struct {
Frequency: DWORD,
Flags: DWORD,
PercentFrequency: DWORD,
};
pub const PPPM_WMI_LEGACY_PERFSTATE = ?&extern struct {
Frequency: DWORD,
Flags: DWORD,
PercentFrequency: DWORD,
};
pub const PPM_WMI_IDLE_STATE = extern struct {
Latency: DWORD,
Power: DWORD,
TimeCheck: DWORD,
PromotePercent: BYTE,
DemotePercent: BYTE,
StateType: BYTE,
Reserved: BYTE,
StateFlags: DWORD,
Context: DWORD,
IdleHandler: DWORD,
Reserved1: DWORD,
};
pub const PPPM_WMI_IDLE_STATE = ?&extern struct {
Latency: DWORD,
Power: DWORD,
TimeCheck: DWORD,
PromotePercent: BYTE,
DemotePercent: BYTE,
StateType: BYTE,
Reserved: BYTE,
StateFlags: DWORD,
Context: DWORD,
IdleHandler: DWORD,
Reserved1: DWORD,
};
pub const PPM_WMI_IDLE_STATES = extern struct {
Type: DWORD,
Count: DWORD,
TargetState: DWORD,
OldState: DWORD,
TargetProcessors: DWORD64,
State: [1]PPM_WMI_IDLE_STATE,
};
pub const PPPM_WMI_IDLE_STATES = ?&extern struct {
Type: DWORD,
Count: DWORD,
TargetState: DWORD,
OldState: DWORD,
TargetProcessors: DWORD64,
State: [1]PPM_WMI_IDLE_STATE,
};
pub const PPM_WMI_IDLE_STATES_EX = extern struct {
Type: DWORD,
Count: DWORD,
TargetState: DWORD,
OldState: DWORD,
TargetProcessors: PVOID,
State: [1]PPM_WMI_IDLE_STATE,
};
pub const PPPM_WMI_IDLE_STATES_EX = ?&extern struct {
Type: DWORD,
Count: DWORD,
TargetState: DWORD,
OldState: DWORD,
TargetProcessors: PVOID,
State: [1]PPM_WMI_IDLE_STATE,
};
pub const PPM_WMI_PERF_STATE = extern struct {
Frequency: DWORD,
Power: DWORD,
PercentFrequency: BYTE,
IncreaseLevel: BYTE,
DecreaseLevel: BYTE,
Type: BYTE,
IncreaseTime: DWORD,
DecreaseTime: DWORD,
Control: DWORD64,
Status: DWORD64,
HitCount: DWORD,
Reserved1: DWORD,
Reserved2: DWORD64,
Reserved3: DWORD64,
};
pub const PPPM_WMI_PERF_STATE = ?&extern struct {
Frequency: DWORD,
Power: DWORD,
PercentFrequency: BYTE,
IncreaseLevel: BYTE,
DecreaseLevel: BYTE,
Type: BYTE,
IncreaseTime: DWORD,
DecreaseTime: DWORD,
Control: DWORD64,
Status: DWORD64,
HitCount: DWORD,
Reserved1: DWORD,
Reserved2: DWORD64,
Reserved3: DWORD64,
};
pub const PPM_WMI_PERF_STATES = extern struct {
Count: DWORD,
MaxFrequency: DWORD,
CurrentState: DWORD,
MaxPerfState: DWORD,
MinPerfState: DWORD,
LowestPerfState: DWORD,
ThermalConstraint: DWORD,
BusyAdjThreshold: BYTE,
PolicyType: BYTE,
Type: BYTE,
Reserved: BYTE,
TimerInterval: DWORD,
TargetProcessors: DWORD64,
PStateHandler: DWORD,
PStateContext: DWORD,
TStateHandler: DWORD,
TStateContext: DWORD,
FeedbackHandler: DWORD,
Reserved1: DWORD,
Reserved2: DWORD64,
State: [1]PPM_WMI_PERF_STATE,
};
pub const PPPM_WMI_PERF_STATES = ?&extern struct {
Count: DWORD,
MaxFrequency: DWORD,
CurrentState: DWORD,
MaxPerfState: DWORD,
MinPerfState: DWORD,
LowestPerfState: DWORD,
ThermalConstraint: DWORD,
BusyAdjThreshold: BYTE,
PolicyType: BYTE,
Type: BYTE,
Reserved: BYTE,
TimerInterval: DWORD,
TargetProcessors: DWORD64,
PStateHandler: DWORD,
PStateContext: DWORD,
TStateHandler: DWORD,
TStateContext: DWORD,
FeedbackHandler: DWORD,
Reserved1: DWORD,
Reserved2: DWORD64,
State: [1]PPM_WMI_PERF_STATE,
};
pub const PPM_WMI_PERF_STATES_EX = extern struct {
Count: DWORD,
MaxFrequency: DWORD,
CurrentState: DWORD,
MaxPerfState: DWORD,
MinPerfState: DWORD,
LowestPerfState: DWORD,
ThermalConstraint: DWORD,
BusyAdjThreshold: BYTE,
PolicyType: BYTE,
Type: BYTE,
Reserved: BYTE,
TimerInterval: DWORD,
TargetProcessors: PVOID,
PStateHandler: DWORD,
PStateContext: DWORD,
TStateHandler: DWORD,
TStateContext: DWORD,
FeedbackHandler: DWORD,
Reserved1: DWORD,
Reserved2: DWORD64,
State: [1]PPM_WMI_PERF_STATE,
};
pub const PPPM_WMI_PERF_STATES_EX = ?&extern struct {
Count: DWORD,
MaxFrequency: DWORD,
CurrentState: DWORD,
MaxPerfState: DWORD,
MinPerfState: DWORD,
LowestPerfState: DWORD,
ThermalConstraint: DWORD,
BusyAdjThreshold: BYTE,
PolicyType: BYTE,
Type: BYTE,
Reserved: BYTE,
TimerInterval: DWORD,
TargetProcessors: PVOID,
PStateHandler: DWORD,
PStateContext: DWORD,
TStateHandler: DWORD,
TStateContext: DWORD,
FeedbackHandler: DWORD,
Reserved1: DWORD,
Reserved2: DWORD64,
State: [1]PPM_WMI_PERF_STATE,
};
pub const PPM_IDLE_STATE_ACCOUNTING = extern struct {
IdleTransitions: DWORD,
FailedTransitions: DWORD,
InvalidBucketIndex: DWORD,
TotalTime: DWORD64,
IdleTimeBuckets: [6]DWORD,
};
pub const PPPM_IDLE_STATE_ACCOUNTING = ?&extern struct {
IdleTransitions: DWORD,
FailedTransitions: DWORD,
InvalidBucketIndex: DWORD,
TotalTime: DWORD64,
IdleTimeBuckets: [6]DWORD,
};
pub const PPM_IDLE_ACCOUNTING = extern struct {
StateCount: DWORD,
TotalTransitions: DWORD,
ResetCount: DWORD,
StartTime: DWORD64,
State: [1]PPM_IDLE_STATE_ACCOUNTING,
};
pub const PPPM_IDLE_ACCOUNTING = ?&extern struct {
StateCount: DWORD,
TotalTransitions: DWORD,
ResetCount: DWORD,
StartTime: DWORD64,
State: [1]PPM_IDLE_STATE_ACCOUNTING,
};
pub const PPM_IDLE_STATE_BUCKET_EX = extern struct {
TotalTimeUs: DWORD64,
MinTimeUs: DWORD,
MaxTimeUs: DWORD,
Count: DWORD,
};
pub const PPPM_IDLE_STATE_BUCKET_EX = ?&extern struct {
TotalTimeUs: DWORD64,
MinTimeUs: DWORD,
MaxTimeUs: DWORD,
Count: DWORD,
};
pub const PPM_IDLE_STATE_ACCOUNTING_EX = extern struct {
TotalTime: DWORD64,
IdleTransitions: DWORD,
FailedTransitions: DWORD,
InvalidBucketIndex: DWORD,
MinTimeUs: DWORD,
MaxTimeUs: DWORD,
CancelledTransitions: DWORD,
IdleTimeBuckets: [16]PPM_IDLE_STATE_BUCKET_EX,
};
pub const PPPM_IDLE_STATE_ACCOUNTING_EX = ?&extern struct {
TotalTime: DWORD64,
IdleTransitions: DWORD,
FailedTransitions: DWORD,
InvalidBucketIndex: DWORD,
MinTimeUs: DWORD,
MaxTimeUs: DWORD,
CancelledTransitions: DWORD,
IdleTimeBuckets: [16]PPM_IDLE_STATE_BUCKET_EX,
};
pub const PPM_IDLE_ACCOUNTING_EX = extern struct {
StateCount: DWORD,
TotalTransitions: DWORD,
ResetCount: DWORD,
AbortCount: DWORD,
StartTime: DWORD64,
State: [1]PPM_IDLE_STATE_ACCOUNTING_EX,
};
pub const PPPM_IDLE_ACCOUNTING_EX = ?&extern struct {
StateCount: DWORD,
TotalTransitions: DWORD,
ResetCount: DWORD,
AbortCount: DWORD,
StartTime: DWORD64,
State: [1]PPM_IDLE_STATE_ACCOUNTING_EX,
};
pub extern const PPM_PERFSTATE_CHANGE_GUID: GUID;
pub extern const PPM_PERFSTATE_DOMAIN_CHANGE_GUID: GUID;
pub extern const PPM_IDLESTATE_CHANGE_GUID: GUID;
pub extern const PPM_PERFSTATES_DATA_GUID: GUID;
pub extern const PPM_IDLESTATES_DATA_GUID: GUID;
pub extern const PPM_IDLE_ACCOUNTING_GUID: GUID;
pub extern const PPM_IDLE_ACCOUNTING_EX_GUID: GUID;
pub extern const PPM_THERMALCONSTRAINT_GUID: GUID;
pub extern const PPM_PERFMON_PERFSTATE_GUID: GUID;
pub extern const PPM_THERMAL_POLICY_CHANGE_GUID: GUID;
pub const PPM_PERFSTATE_EVENT = extern struct {
State: DWORD,
Status: DWORD,
Latency: DWORD,
Speed: DWORD,
Processor: DWORD,
};
pub const PPPM_PERFSTATE_EVENT = ?&extern struct {
State: DWORD,
Status: DWORD,
Latency: DWORD,
Speed: DWORD,
Processor: DWORD,
};
pub const PPM_PERFSTATE_DOMAIN_EVENT = extern struct {
State: DWORD,
Latency: DWORD,
Speed: DWORD,
Processors: DWORD64,
};
pub const PPPM_PERFSTATE_DOMAIN_EVENT = ?&extern struct {
State: DWORD,
Latency: DWORD,
Speed: DWORD,
Processors: DWORD64,
};
pub const PPM_IDLESTATE_EVENT = extern struct {
NewState: DWORD,
OldState: DWORD,
Processors: DWORD64,
};
pub const PPPM_IDLESTATE_EVENT = ?&extern struct {
NewState: DWORD,
OldState: DWORD,
Processors: DWORD64,
};
pub const PPM_THERMALCHANGE_EVENT = extern struct {
ThermalConstraint: DWORD,
Processors: DWORD64,
};
pub const PPPM_THERMALCHANGE_EVENT = ?&extern struct {
ThermalConstraint: DWORD,
Processors: DWORD64,
};
pub const PPM_THERMAL_POLICY_EVENT = extern struct {
Mode: BYTE,
Processors: DWORD64,
};
pub const PPPM_THERMAL_POLICY_EVENT = ?&extern struct {
Mode: BYTE,
Processors: DWORD64,
};
pub const POWER_ACTION_POLICY = extern struct {
Action: POWER_ACTION,
Flags: DWORD,
EventCode: DWORD,
};
pub const PPOWER_ACTION_POLICY = ?&extern struct {
Action: POWER_ACTION,
Flags: DWORD,
EventCode: DWORD,
};
pub const SYSTEM_POWER_LEVEL = extern struct {
Enable: BOOLEAN,
Spare: [3]BYTE,
BatteryLevel: DWORD,
PowerPolicy: POWER_ACTION_POLICY,
MinSystemState: SYSTEM_POWER_STATE,
};
pub const PSYSTEM_POWER_LEVEL = ?&extern struct {
Enable: BOOLEAN,
Spare: [3]BYTE,
BatteryLevel: DWORD,
PowerPolicy: POWER_ACTION_POLICY,
MinSystemState: SYSTEM_POWER_STATE,
};
pub const struct__SYSTEM_POWER_POLICY = extern struct {
Revision: DWORD,
PowerButton: POWER_ACTION_POLICY,
SleepButton: POWER_ACTION_POLICY,
LidClose: POWER_ACTION_POLICY,
LidOpenWake: SYSTEM_POWER_STATE,
Reserved: DWORD,
Idle: POWER_ACTION_POLICY,
IdleTimeout: DWORD,
IdleSensitivity: BYTE,
DynamicThrottle: BYTE,
Spare2: [2]BYTE,
MinSleep: SYSTEM_POWER_STATE,
MaxSleep: SYSTEM_POWER_STATE,
ReducedLatencySleep: SYSTEM_POWER_STATE,
WinLogonFlags: DWORD,
Spare3: DWORD,
DozeS4Timeout: DWORD,
BroadcastCapacityResolution: DWORD,
DischargePolicy: [4]SYSTEM_POWER_LEVEL,
VideoTimeout: DWORD,
VideoDimDisplay: BOOLEAN,
VideoReserved: [3]DWORD,
SpindownTimeout: DWORD,
OptimizeForPower: BOOLEAN,
FanThrottleTolerance: BYTE,
ForcedThrottle: BYTE,
MinThrottle: BYTE,
OverThrottled: POWER_ACTION_POLICY,
};
pub const SYSTEM_POWER_POLICY = struct__SYSTEM_POWER_POLICY;
pub const PSYSTEM_POWER_POLICY = ?&struct__SYSTEM_POWER_POLICY;
pub const PROCESSOR_IDLESTATE_INFO = extern struct {
TimeCheck: DWORD,
DemotePercent: BYTE,
PromotePercent: BYTE,
Spare: [2]BYTE,
};
pub const PPROCESSOR_IDLESTATE_INFO = ?&extern struct {
TimeCheck: DWORD,
DemotePercent: BYTE,
PromotePercent: BYTE,
Spare: [2]BYTE,
};
pub const PROCESSOR_IDLESTATE_POLICY = @OpaqueType();
pub const PPROCESSOR_IDLESTATE_POLICY = ?&@OpaqueType();
pub const struct__PROCESSOR_POWER_POLICY_INFO = @OpaqueType();
pub const PROCESSOR_POWER_POLICY_INFO = struct__PROCESSOR_POWER_POLICY_INFO;
pub const PPROCESSOR_POWER_POLICY_INFO = ?&struct__PROCESSOR_POWER_POLICY_INFO;
pub const struct__PROCESSOR_POWER_POLICY = @OpaqueType();
pub const PROCESSOR_POWER_POLICY = struct__PROCESSOR_POWER_POLICY;
pub const PPROCESSOR_POWER_POLICY = ?&struct__PROCESSOR_POWER_POLICY;
pub const PROCESSOR_PERFSTATE_POLICY = @OpaqueType();
pub const PPROCESSOR_PERFSTATE_POLICY = ?&@OpaqueType();
pub const struct__ADMINISTRATOR_POWER_POLICY = extern struct {
MinSleep: SYSTEM_POWER_STATE,
MaxSleep: SYSTEM_POWER_STATE,
MinVideoTimeout: DWORD,
MaxVideoTimeout: DWORD,
MinSpindownTimeout: DWORD,
MaxSpindownTimeout: DWORD,
};
pub const ADMINISTRATOR_POWER_POLICY = struct__ADMINISTRATOR_POWER_POLICY;
pub const PADMINISTRATOR_POWER_POLICY = ?&struct__ADMINISTRATOR_POWER_POLICY;
pub const SYSTEM_POWER_CAPABILITIES = extern struct {
PowerButtonPresent: BOOLEAN,
SleepButtonPresent: BOOLEAN,
LidPresent: BOOLEAN,
SystemS1: BOOLEAN,
SystemS2: BOOLEAN,
SystemS3: BOOLEAN,
SystemS4: BOOLEAN,
SystemS5: BOOLEAN,
HiberFilePresent: BOOLEAN,
FullWake: BOOLEAN,
VideoDimPresent: BOOLEAN,
ApmPresent: BOOLEAN,
UpsPresent: BOOLEAN,
ThermalControl: BOOLEAN,
ProcessorThrottle: BOOLEAN,
ProcessorMinThrottle: BYTE,
ProcessorMaxThrottle: BYTE,
FastSystemS4: BOOLEAN,
Hiberboot: BOOLEAN,
WakeAlarmPresent: BOOLEAN,
AoAc: BOOLEAN,
DiskSpinDown: BOOLEAN,
spare3: [8]BYTE,
SystemBatteriesPresent: BOOLEAN,
BatteriesAreShortTerm: BOOLEAN,
BatteryScale: [3]BATTERY_REPORTING_SCALE,
AcOnLineWake: SYSTEM_POWER_STATE,
SoftLidWake: SYSTEM_POWER_STATE,
RtcWake: SYSTEM_POWER_STATE,
MinDeviceWakeState: SYSTEM_POWER_STATE,
DefaultLowLatencyWake: SYSTEM_POWER_STATE,
};
pub const PSYSTEM_POWER_CAPABILITIES = ?&extern struct {
PowerButtonPresent: BOOLEAN,
SleepButtonPresent: BOOLEAN,
LidPresent: BOOLEAN,
SystemS1: BOOLEAN,
SystemS2: BOOLEAN,
SystemS3: BOOLEAN,
SystemS4: BOOLEAN,
SystemS5: BOOLEAN,
HiberFilePresent: BOOLEAN,
FullWake: BOOLEAN,
VideoDimPresent: BOOLEAN,
ApmPresent: BOOLEAN,
UpsPresent: BOOLEAN,
ThermalControl: BOOLEAN,
ProcessorThrottle: BOOLEAN,
ProcessorMinThrottle: BYTE,
ProcessorMaxThrottle: BYTE,
FastSystemS4: BOOLEAN,
Hiberboot: BOOLEAN,
WakeAlarmPresent: BOOLEAN,
AoAc: BOOLEAN,
DiskSpinDown: BOOLEAN,
spare3: [8]BYTE,
SystemBatteriesPresent: BOOLEAN,
BatteriesAreShortTerm: BOOLEAN,
BatteryScale: [3]BATTERY_REPORTING_SCALE,
AcOnLineWake: SYSTEM_POWER_STATE,
SoftLidWake: SYSTEM_POWER_STATE,
RtcWake: SYSTEM_POWER_STATE,
MinDeviceWakeState: SYSTEM_POWER_STATE,
DefaultLowLatencyWake: SYSTEM_POWER_STATE,
};
pub const SYSTEM_BATTERY_STATE = extern struct {
AcOnLine: BOOLEAN,
BatteryPresent: BOOLEAN,
Charging: BOOLEAN,
Discharging: BOOLEAN,
Spare1: [3]BOOLEAN,
Tag: BYTE,
MaxCapacity: DWORD,
RemainingCapacity: DWORD,
Rate: DWORD,
EstimatedTime: DWORD,
DefaultAlert1: DWORD,
DefaultAlert2: DWORD,
};
pub const PSYSTEM_BATTERY_STATE = ?&extern struct {
AcOnLine: BOOLEAN,
BatteryPresent: BOOLEAN,
Charging: BOOLEAN,
Discharging: BOOLEAN,
Spare1: [3]BOOLEAN,
Tag: BYTE,
MaxCapacity: DWORD,
RemainingCapacity: DWORD,
Rate: DWORD,
EstimatedTime: DWORD,
DefaultAlert1: DWORD,
DefaultAlert2: DWORD,
};
pub const struct__IMAGE_DOS_HEADER = extern struct {
e_magic: WORD,
e_cblp: WORD,
e_cp: WORD,
e_crlc: WORD,
e_cparhdr: WORD,
e_minalloc: WORD,
e_maxalloc: WORD,
e_ss: WORD,
e_sp: WORD,
e_csum: WORD,
e_ip: WORD,
e_cs: WORD,
e_lfarlc: WORD,
e_ovno: WORD,
e_res: [4]WORD,
e_oemid: WORD,
e_oeminfo: WORD,
e_res2: [10]WORD,
e_lfanew: LONG,
};
pub const IMAGE_DOS_HEADER = struct__IMAGE_DOS_HEADER;
pub const PIMAGE_DOS_HEADER = ?&struct__IMAGE_DOS_HEADER;
pub const struct__IMAGE_OS2_HEADER = extern struct {
ne_magic: WORD,
ne_ver: CHAR,
ne_rev: CHAR,
ne_enttab: WORD,
ne_cbenttab: WORD,
ne_crc: LONG,
ne_flags: WORD,
ne_autodata: WORD,
ne_heap: WORD,
ne_stack: WORD,
ne_csip: LONG,
ne_sssp: LONG,
ne_cseg: WORD,
ne_cmod: WORD,
ne_cbnrestab: WORD,
ne_segtab: WORD,
ne_rsrctab: WORD,
ne_restab: WORD,
ne_modtab: WORD,
ne_imptab: WORD,
ne_nrestab: LONG,
ne_cmovent: WORD,
ne_align: WORD,
ne_cres: WORD,
ne_exetyp: BYTE,
ne_flagsothers: BYTE,
ne_pretthunks: WORD,
ne_psegrefbytes: WORD,
ne_swaparea: WORD,
ne_expver: WORD,
};
pub const IMAGE_OS2_HEADER = struct__IMAGE_OS2_HEADER;
pub const PIMAGE_OS2_HEADER = ?&struct__IMAGE_OS2_HEADER;
pub const struct__IMAGE_VXD_HEADER = extern struct {
e32_magic: WORD,
e32_border: BYTE,
e32_worder: BYTE,
e32_level: DWORD,
e32_cpu: WORD,
e32_os: WORD,
e32_ver: DWORD,
e32_mflags: DWORD,
e32_mpages: DWORD,
e32_startobj: DWORD,
e32_eip: DWORD,
e32_stackobj: DWORD,
e32_esp: DWORD,
e32_pagesize: DWORD,
e32_lastpagesize: DWORD,
e32_fixupsize: DWORD,
e32_fixupsum: DWORD,
e32_ldrsize: DWORD,
e32_ldrsum: DWORD,
e32_objtab: DWORD,
e32_objcnt: DWORD,
e32_objmap: DWORD,
e32_itermap: DWORD,
e32_rsrctab: DWORD,
e32_rsrccnt: DWORD,
e32_restab: DWORD,
e32_enttab: DWORD,
e32_dirtab: DWORD,
e32_dircnt: DWORD,
e32_fpagetab: DWORD,
e32_frectab: DWORD,
e32_impmod: DWORD,
e32_impmodcnt: DWORD,
e32_impproc: DWORD,
e32_pagesum: DWORD,
e32_datapage: DWORD,
e32_preload: DWORD,
e32_nrestab: DWORD,
e32_cbnrestab: DWORD,
e32_nressum: DWORD,
e32_autodata: DWORD,
e32_debuginfo: DWORD,
e32_debuglen: DWORD,
e32_instpreload: DWORD,
e32_instdemand: DWORD,
e32_heapsize: DWORD,
e32_res3: [12]BYTE,
e32_winresoff: DWORD,
e32_winreslen: DWORD,
e32_devid: WORD,
e32_ddkver: WORD,
};
pub const IMAGE_VXD_HEADER = struct__IMAGE_VXD_HEADER;
pub const PIMAGE_VXD_HEADER = ?&struct__IMAGE_VXD_HEADER;
pub const struct__IMAGE_FILE_HEADER = extern struct {
Machine: WORD,
NumberOfSections: WORD,
TimeDateStamp: DWORD,
PointerToSymbolTable: DWORD,
NumberOfSymbols: DWORD,
SizeOfOptionalHeader: WORD,
Characteristics: WORD,
};
pub const IMAGE_FILE_HEADER = struct__IMAGE_FILE_HEADER;
pub const PIMAGE_FILE_HEADER = ?&struct__IMAGE_FILE_HEADER;
pub const struct__IMAGE_DATA_DIRECTORY = extern struct {
VirtualAddress: DWORD,
Size: DWORD,
};
pub const IMAGE_DATA_DIRECTORY = struct__IMAGE_DATA_DIRECTORY;
pub const PIMAGE_DATA_DIRECTORY = ?&struct__IMAGE_DATA_DIRECTORY;
pub const struct__IMAGE_OPTIONAL_HEADER = extern struct {
Magic: WORD,
MajorLinkerVersion: BYTE,
MinorLinkerVersion: BYTE,
SizeOfCode: DWORD,
SizeOfInitializedData: DWORD,
SizeOfUninitializedData: DWORD,
AddressOfEntryPoint: DWORD,
BaseOfCode: DWORD,
BaseOfData: DWORD,
ImageBase: DWORD,
SectionAlignment: DWORD,
FileAlignment: DWORD,
MajorOperatingSystemVersion: WORD,
MinorOperatingSystemVersion: WORD,
MajorImageVersion: WORD,
MinorImageVersion: WORD,
MajorSubsystemVersion: WORD,
MinorSubsystemVersion: WORD,
Win32VersionValue: DWORD,
SizeOfImage: DWORD,
SizeOfHeaders: DWORD,
CheckSum: DWORD,
Subsystem: WORD,
DllCharacteristics: WORD,
SizeOfStackReserve: DWORD,
SizeOfStackCommit: DWORD,
SizeOfHeapReserve: DWORD,
SizeOfHeapCommit: DWORD,
LoaderFlags: DWORD,
NumberOfRvaAndSizes: DWORD,
DataDirectory: [16]IMAGE_DATA_DIRECTORY,
};
pub const IMAGE_OPTIONAL_HEADER32 = struct__IMAGE_OPTIONAL_HEADER;
pub const PIMAGE_OPTIONAL_HEADER32 = ?&struct__IMAGE_OPTIONAL_HEADER;
pub const struct__IMAGE_ROM_OPTIONAL_HEADER = extern struct {
Magic: WORD,
MajorLinkerVersion: BYTE,
MinorLinkerVersion: BYTE,
SizeOfCode: DWORD,
SizeOfInitializedData: DWORD,
SizeOfUninitializedData: DWORD,
AddressOfEntryPoint: DWORD,
BaseOfCode: DWORD,
BaseOfData: DWORD,
BaseOfBss: DWORD,
GprMask: DWORD,
CprMask: [4]DWORD,
GpValue: DWORD,
};
pub const IMAGE_ROM_OPTIONAL_HEADER = struct__IMAGE_ROM_OPTIONAL_HEADER;
pub const PIMAGE_ROM_OPTIONAL_HEADER = ?&struct__IMAGE_ROM_OPTIONAL_HEADER;
pub const struct__IMAGE_OPTIONAL_HEADER64 = extern struct {
Magic: WORD,
MajorLinkerVersion: BYTE,
MinorLinkerVersion: BYTE,
SizeOfCode: DWORD,
SizeOfInitializedData: DWORD,
SizeOfUninitializedData: DWORD,
AddressOfEntryPoint: DWORD,
BaseOfCode: DWORD,
ImageBase: ULONGLONG,
SectionAlignment: DWORD,
FileAlignment: DWORD,
MajorOperatingSystemVersion: WORD,
MinorOperatingSystemVersion: WORD,
MajorImageVersion: WORD,
MinorImageVersion: WORD,
MajorSubsystemVersion: WORD,
MinorSubsystemVersion: WORD,
Win32VersionValue: DWORD,
SizeOfImage: DWORD,
SizeOfHeaders: DWORD,
CheckSum: DWORD,
Subsystem: WORD,
DllCharacteristics: WORD,
SizeOfStackReserve: ULONGLONG,
SizeOfStackCommit: ULONGLONG,
SizeOfHeapReserve: ULONGLONG,
SizeOfHeapCommit: ULONGLONG,
LoaderFlags: DWORD,
NumberOfRvaAndSizes: DWORD,
DataDirectory: [16]IMAGE_DATA_DIRECTORY,
};
pub const IMAGE_OPTIONAL_HEADER64 = struct__IMAGE_OPTIONAL_HEADER64;
pub const PIMAGE_OPTIONAL_HEADER64 = ?&struct__IMAGE_OPTIONAL_HEADER64;
pub const IMAGE_OPTIONAL_HEADER = IMAGE_OPTIONAL_HEADER64;
pub const PIMAGE_OPTIONAL_HEADER = PIMAGE_OPTIONAL_HEADER64;
pub const struct__IMAGE_NT_HEADERS64 = extern struct {
Signature: DWORD,
FileHeader: IMAGE_FILE_HEADER,
OptionalHeader: IMAGE_OPTIONAL_HEADER64,
};
pub const IMAGE_NT_HEADERS64 = struct__IMAGE_NT_HEADERS64;
pub const PIMAGE_NT_HEADERS64 = ?&struct__IMAGE_NT_HEADERS64;
pub const struct__IMAGE_NT_HEADERS = extern struct {
Signature: DWORD,
FileHeader: IMAGE_FILE_HEADER,
OptionalHeader: IMAGE_OPTIONAL_HEADER32,
};
pub const IMAGE_NT_HEADERS32 = struct__IMAGE_NT_HEADERS;
pub const PIMAGE_NT_HEADERS32 = ?&struct__IMAGE_NT_HEADERS;
pub const struct__IMAGE_ROM_HEADERS = extern struct {
FileHeader: IMAGE_FILE_HEADER,
OptionalHeader: IMAGE_ROM_OPTIONAL_HEADER,
};
pub const IMAGE_ROM_HEADERS = struct__IMAGE_ROM_HEADERS;
pub const PIMAGE_ROM_HEADERS = ?&struct__IMAGE_ROM_HEADERS;
pub const IMAGE_NT_HEADERS = IMAGE_NT_HEADERS64;
pub const PIMAGE_NT_HEADERS = PIMAGE_NT_HEADERS64;
pub const struct_ANON_OBJECT_HEADER = extern struct {
Sig1: WORD,
Sig2: WORD,
Version: WORD,
Machine: WORD,
TimeDateStamp: DWORD,
ClassID: CLSID,
SizeOfData: DWORD,
};
pub const ANON_OBJECT_HEADER = struct_ANON_OBJECT_HEADER;
pub const struct_ANON_OBJECT_HEADER_V2 = extern struct {
Sig1: WORD,
Sig2: WORD,
Version: WORD,
Machine: WORD,
TimeDateStamp: DWORD,
ClassID: CLSID,
SizeOfData: DWORD,
Flags: DWORD,
MetaDataSize: DWORD,
MetaDataOffset: DWORD,
};
pub const ANON_OBJECT_HEADER_V2 = struct_ANON_OBJECT_HEADER_V2;
pub const struct_ANON_OBJECT_HEADER_BIGOBJ = extern struct {
Sig1: WORD,
Sig2: WORD,
Version: WORD,
Machine: WORD,
TimeDateStamp: DWORD,
ClassID: CLSID,
SizeOfData: DWORD,
Flags: DWORD,
MetaDataSize: DWORD,
MetaDataOffset: DWORD,
NumberOfSections: DWORD,
PointerToSymbolTable: DWORD,
NumberOfSymbols: DWORD,
};
pub const ANON_OBJECT_HEADER_BIGOBJ = struct_ANON_OBJECT_HEADER_BIGOBJ;
pub const struct__IMAGE_SECTION_HEADER = @OpaqueType();
pub const IMAGE_SECTION_HEADER = struct__IMAGE_SECTION_HEADER;
pub const PIMAGE_SECTION_HEADER = ?&struct__IMAGE_SECTION_HEADER;
pub const struct__IMAGE_SYMBOL = @OpaqueType();
pub const IMAGE_SYMBOL = struct__IMAGE_SYMBOL;
pub const PIMAGE_SYMBOL = ?&IMAGE_SYMBOL;
pub const struct__IMAGE_SYMBOL_EX = @OpaqueType();
pub const IMAGE_SYMBOL_EX = struct__IMAGE_SYMBOL_EX;
pub const PIMAGE_SYMBOL_EX = ?&IMAGE_SYMBOL_EX;
pub const struct_IMAGE_AUX_SYMBOL_TOKEN_DEF = extern struct {
bAuxType: BYTE,
bReserved: BYTE,
SymbolTableIndex: DWORD,
rgbReserved: [12]BYTE,
};
pub const IMAGE_AUX_SYMBOL_TOKEN_DEF = struct_IMAGE_AUX_SYMBOL_TOKEN_DEF;
pub const PIMAGE_AUX_SYMBOL_TOKEN_DEF = ?&IMAGE_AUX_SYMBOL_TOKEN_DEF;
pub const IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF: c_int = 1;
pub const enum_IMAGE_AUX_SYMBOL_TYPE = c_int;
pub const IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF: c_int = 1;
pub const enum_IMAGE_AUX_SYMBOL_TYPE = c_int;
pub const IMAGE_AUX_SYMBOL_TYPE = enum_IMAGE_AUX_SYMBOL_TYPE;
pub const struct__IMAGE_RELOCATION = @OpaqueType();
pub const IMAGE_RELOCATION = struct__IMAGE_RELOCATION;
pub const PIMAGE_RELOCATION = ?&IMAGE_RELOCATION;
pub const struct__IMAGE_LINENUMBER = @OpaqueType();
pub const IMAGE_LINENUMBER = struct__IMAGE_LINENUMBER;
pub const PIMAGE_LINENUMBER = ?&IMAGE_LINENUMBER;
pub const struct__IMAGE_BASE_RELOCATION = extern struct {
VirtualAddress: DWORD,
SizeOfBlock: DWORD,
};
pub const IMAGE_BASE_RELOCATION = struct__IMAGE_BASE_RELOCATION;
pub const PIMAGE_BASE_RELOCATION = ?&IMAGE_BASE_RELOCATION;
pub const struct__IMAGE_ARCHIVE_MEMBER_HEADER = extern struct {
Name: [16]BYTE,
Date: [12]BYTE,
UserID: [6]BYTE,
GroupID: [6]BYTE,
Mode: [8]BYTE,
Size: [10]BYTE,
EndHeader: [2]BYTE,
};
pub const IMAGE_ARCHIVE_MEMBER_HEADER = struct__IMAGE_ARCHIVE_MEMBER_HEADER;
pub const PIMAGE_ARCHIVE_MEMBER_HEADER = ?&struct__IMAGE_ARCHIVE_MEMBER_HEADER;
pub const struct__IMAGE_EXPORT_DIRECTORY = extern struct {
Characteristics: DWORD,
TimeDateStamp: DWORD,
MajorVersion: WORD,
MinorVersion: WORD,
Name: DWORD,
Base: DWORD,
NumberOfFunctions: DWORD,
NumberOfNames: DWORD,
AddressOfFunctions: DWORD,
AddressOfNames: DWORD,
AddressOfNameOrdinals: DWORD,
};
pub const IMAGE_EXPORT_DIRECTORY = struct__IMAGE_EXPORT_DIRECTORY;
pub const PIMAGE_EXPORT_DIRECTORY = ?&struct__IMAGE_EXPORT_DIRECTORY;
pub const struct__IMAGE_IMPORT_BY_NAME = extern struct {
Hint: WORD,
Name: [1]CHAR,
};
pub const IMAGE_IMPORT_BY_NAME = struct__IMAGE_IMPORT_BY_NAME;
pub const PIMAGE_IMPORT_BY_NAME = ?&struct__IMAGE_IMPORT_BY_NAME;
pub const struct__IMAGE_THUNK_DATA64 = @OpaqueType();
pub const IMAGE_THUNK_DATA64 = struct__IMAGE_THUNK_DATA64;
pub const PIMAGE_THUNK_DATA64 = ?&IMAGE_THUNK_DATA64;
pub const struct__IMAGE_THUNK_DATA32 = @OpaqueType();
pub const IMAGE_THUNK_DATA32 = struct__IMAGE_THUNK_DATA32;
pub const PIMAGE_THUNK_DATA32 = ?&IMAGE_THUNK_DATA32;
pub const PIMAGE_TLS_CALLBACK = ?extern fn(PVOID, DWORD, PVOID);
pub const struct__IMAGE_TLS_DIRECTORY64 = @OpaqueType();
pub const IMAGE_TLS_DIRECTORY64 = struct__IMAGE_TLS_DIRECTORY64;
pub const PIMAGE_TLS_DIRECTORY64 = ?&IMAGE_TLS_DIRECTORY64;
pub const struct__IMAGE_TLS_DIRECTORY32 = @OpaqueType();
pub const IMAGE_TLS_DIRECTORY32 = struct__IMAGE_TLS_DIRECTORY32;
pub const PIMAGE_TLS_DIRECTORY32 = ?&IMAGE_TLS_DIRECTORY32;
pub const IMAGE_THUNK_DATA = IMAGE_THUNK_DATA64;
pub const PIMAGE_THUNK_DATA = PIMAGE_THUNK_DATA64;
pub const IMAGE_TLS_DIRECTORY = IMAGE_TLS_DIRECTORY64;
pub const PIMAGE_TLS_DIRECTORY = PIMAGE_TLS_DIRECTORY64;
pub const struct__IMAGE_IMPORT_DESCRIPTOR = @OpaqueType();
pub const IMAGE_IMPORT_DESCRIPTOR = struct__IMAGE_IMPORT_DESCRIPTOR;
pub const PIMAGE_IMPORT_DESCRIPTOR = ?&IMAGE_IMPORT_DESCRIPTOR;
pub const struct__IMAGE_BOUND_IMPORT_DESCRIPTOR = extern struct {
TimeDateStamp: DWORD,
OffsetModuleName: WORD,
NumberOfModuleForwarderRefs: WORD,
};
pub const IMAGE_BOUND_IMPORT_DESCRIPTOR = struct__IMAGE_BOUND_IMPORT_DESCRIPTOR;
pub const PIMAGE_BOUND_IMPORT_DESCRIPTOR = ?&struct__IMAGE_BOUND_IMPORT_DESCRIPTOR;
pub const struct__IMAGE_BOUND_FORWARDER_REF = extern struct {
TimeDateStamp: DWORD,
OffsetModuleName: WORD,
Reserved: WORD,
};
pub const IMAGE_BOUND_FORWARDER_REF = struct__IMAGE_BOUND_FORWARDER_REF;
pub const PIMAGE_BOUND_FORWARDER_REF = ?&struct__IMAGE_BOUND_FORWARDER_REF;
pub const struct__IMAGE_DELAYLOAD_DESCRIPTOR = @OpaqueType();
pub const IMAGE_DELAYLOAD_DESCRIPTOR = struct__IMAGE_DELAYLOAD_DESCRIPTOR;
pub const PIMAGE_DELAYLOAD_DESCRIPTOR = ?&struct__IMAGE_DELAYLOAD_DESCRIPTOR;
pub const PCIMAGE_DELAYLOAD_DESCRIPTOR = ?&const IMAGE_DELAYLOAD_DESCRIPTOR;
pub const struct__IMAGE_RESOURCE_DIRECTORY = extern struct {
Characteristics: DWORD,
TimeDateStamp: DWORD,
MajorVersion: WORD,
MinorVersion: WORD,
NumberOfNamedEntries: WORD,
NumberOfIdEntries: WORD,
};
pub const IMAGE_RESOURCE_DIRECTORY = struct__IMAGE_RESOURCE_DIRECTORY;
pub const PIMAGE_RESOURCE_DIRECTORY = ?&struct__IMAGE_RESOURCE_DIRECTORY;
pub const struct__IMAGE_RESOURCE_DIRECTORY_ENTRY = @OpaqueType();
pub const IMAGE_RESOURCE_DIRECTORY_ENTRY = struct__IMAGE_RESOURCE_DIRECTORY_ENTRY;
pub const PIMAGE_RESOURCE_DIRECTORY_ENTRY = ?&struct__IMAGE_RESOURCE_DIRECTORY_ENTRY;
pub const struct__IMAGE_RESOURCE_DIRECTORY_STRING = extern struct {
Length: WORD,
NameString: [1]CHAR,
};
pub const IMAGE_RESOURCE_DIRECTORY_STRING = struct__IMAGE_RESOURCE_DIRECTORY_STRING;
pub const PIMAGE_RESOURCE_DIRECTORY_STRING = ?&struct__IMAGE_RESOURCE_DIRECTORY_STRING;
pub const struct__IMAGE_RESOURCE_DIR_STRING_U = extern struct {
Length: WORD,
NameString: [1]WCHAR,
};
pub const IMAGE_RESOURCE_DIR_STRING_U = struct__IMAGE_RESOURCE_DIR_STRING_U;
pub const PIMAGE_RESOURCE_DIR_STRING_U = ?&struct__IMAGE_RESOURCE_DIR_STRING_U;
pub const struct__IMAGE_RESOURCE_DATA_ENTRY = extern struct {
OffsetToData: DWORD,
Size: DWORD,
CodePage: DWORD,
Reserved: DWORD,
};
pub const IMAGE_RESOURCE_DATA_ENTRY = struct__IMAGE_RESOURCE_DATA_ENTRY;
pub const PIMAGE_RESOURCE_DATA_ENTRY = ?&struct__IMAGE_RESOURCE_DATA_ENTRY;
pub const struct__IMAGE_LOAD_CONFIG_DIRECTORY32 = extern struct {
Size: DWORD,
TimeDateStamp: DWORD,
MajorVersion: WORD,
MinorVersion: WORD,
GlobalFlagsClear: DWORD,
GlobalFlagsSet: DWORD,
CriticalSectionDefaultTimeout: DWORD,
DeCommitFreeBlockThreshold: DWORD,
DeCommitTotalFreeThreshold: DWORD,
LockPrefixTable: DWORD,
MaximumAllocationSize: DWORD,
VirtualMemoryThreshold: DWORD,
ProcessHeapFlags: DWORD,
ProcessAffinityMask: DWORD,
CSDVersion: WORD,
Reserved1: WORD,
EditList: DWORD,
SecurityCookie: DWORD,
SEHandlerTable: DWORD,
SEHandlerCount: DWORD,
GuardCFCheckFunctionPointer: DWORD,
Reserved2: DWORD,
GuardCFFunctionTable: DWORD,
GuardCFFunctionCount: DWORD,
GuardFlags: DWORD,
};
pub const IMAGE_LOAD_CONFIG_DIRECTORY32 = struct__IMAGE_LOAD_CONFIG_DIRECTORY32;
pub const PIMAGE_LOAD_CONFIG_DIRECTORY32 = ?&struct__IMAGE_LOAD_CONFIG_DIRECTORY32;
pub const struct__IMAGE_LOAD_CONFIG_DIRECTORY64 = extern struct {
Size: DWORD,
TimeDateStamp: DWORD,
MajorVersion: WORD,
MinorVersion: WORD,
GlobalFlagsClear: DWORD,
GlobalFlagsSet: DWORD,
CriticalSectionDefaultTimeout: DWORD,
DeCommitFreeBlockThreshold: ULONGLONG,
DeCommitTotalFreeThreshold: ULONGLONG,
LockPrefixTable: ULONGLONG,
MaximumAllocationSize: ULONGLONG,
VirtualMemoryThreshold: ULONGLONG,
ProcessAffinityMask: ULONGLONG,
ProcessHeapFlags: DWORD,
CSDVersion: WORD,
Reserved1: WORD,
EditList: ULONGLONG,
SecurityCookie: ULONGLONG,
SEHandlerTable: ULONGLONG,
SEHandlerCount: ULONGLONG,
GuardCFCheckFunctionPointer: ULONGLONG,
Reserved2: ULONGLONG,
GuardCFFunctionTable: ULONGLONG,
GuardCFFunctionCount: ULONGLONG,
GuardFlags: DWORD,
};
pub const IMAGE_LOAD_CONFIG_DIRECTORY64 = struct__IMAGE_LOAD_CONFIG_DIRECTORY64;
pub const PIMAGE_LOAD_CONFIG_DIRECTORY64 = ?&struct__IMAGE_LOAD_CONFIG_DIRECTORY64;
pub const IMAGE_LOAD_CONFIG_DIRECTORY = IMAGE_LOAD_CONFIG_DIRECTORY64;
pub const PIMAGE_LOAD_CONFIG_DIRECTORY = PIMAGE_LOAD_CONFIG_DIRECTORY64;
pub const struct__IMAGE_CE_RUNTIME_FUNCTION_ENTRY = @OpaqueType();
pub const IMAGE_CE_RUNTIME_FUNCTION_ENTRY = struct__IMAGE_CE_RUNTIME_FUNCTION_ENTRY;
pub const PIMAGE_CE_RUNTIME_FUNCTION_ENTRY = ?&struct__IMAGE_CE_RUNTIME_FUNCTION_ENTRY;
pub const struct__IMAGE_ARM_RUNTIME_FUNCTION_ENTRY = @OpaqueType();
pub const IMAGE_ARM_RUNTIME_FUNCTION_ENTRY = struct__IMAGE_ARM_RUNTIME_FUNCTION_ENTRY;
pub const PIMAGE_ARM_RUNTIME_FUNCTION_ENTRY = ?&struct__IMAGE_ARM_RUNTIME_FUNCTION_ENTRY;
pub const struct__IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY = extern struct {
BeginAddress: ULONGLONG,
EndAddress: ULONGLONG,
ExceptionHandler: ULONGLONG,
HandlerData: ULONGLONG,
PrologEndAddress: ULONGLONG,
};
pub const IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY = struct__IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY;
pub const PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY = ?&struct__IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY;
pub const struct__IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = extern struct {
BeginAddress: DWORD,
EndAddress: DWORD,
ExceptionHandler: DWORD,
HandlerData: DWORD,
PrologEndAddress: DWORD,
};
pub const IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = struct__IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY;
pub const PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY = ?&struct__IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY;
pub const _IMAGE_RUNTIME_FUNCTION_ENTRY = struct__IMAGE_RUNTIME_FUNCTION_ENTRY;
pub const _PIMAGE_RUNTIME_FUNCTION_ENTRY = ?&struct__IMAGE_RUNTIME_FUNCTION_ENTRY;
pub const IMAGE_IA64_RUNTIME_FUNCTION_ENTRY = _IMAGE_RUNTIME_FUNCTION_ENTRY;
pub const PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY = _PIMAGE_RUNTIME_FUNCTION_ENTRY;
pub const IMAGE_RUNTIME_FUNCTION_ENTRY = _IMAGE_RUNTIME_FUNCTION_ENTRY;
pub const PIMAGE_RUNTIME_FUNCTION_ENTRY = _PIMAGE_RUNTIME_FUNCTION_ENTRY;
pub const struct__IMAGE_DEBUG_DIRECTORY = extern struct {
Characteristics: DWORD,
TimeDateStamp: DWORD,
MajorVersion: WORD,
MinorVersion: WORD,
Type: DWORD,
SizeOfData: DWORD,
AddressOfRawData: DWORD,
PointerToRawData: DWORD,
};
pub const IMAGE_DEBUG_DIRECTORY = struct__IMAGE_DEBUG_DIRECTORY;
pub const PIMAGE_DEBUG_DIRECTORY = ?&struct__IMAGE_DEBUG_DIRECTORY;
pub const struct__IMAGE_COFF_SYMBOLS_HEADER = extern struct {
NumberOfSymbols: DWORD,
LvaToFirstSymbol: DWORD,
NumberOfLinenumbers: DWORD,
LvaToFirstLinenumber: DWORD,
RvaToFirstByteOfCode: DWORD,
RvaToLastByteOfCode: DWORD,
RvaToFirstByteOfData: DWORD,
RvaToLastByteOfData: DWORD,
};
pub const IMAGE_COFF_SYMBOLS_HEADER = struct__IMAGE_COFF_SYMBOLS_HEADER;
pub const PIMAGE_COFF_SYMBOLS_HEADER = ?&struct__IMAGE_COFF_SYMBOLS_HEADER;
pub const struct__FPO_DATA = @OpaqueType();
pub const FPO_DATA = struct__FPO_DATA;
pub const PFPO_DATA = ?&struct__FPO_DATA;
pub const struct__IMAGE_DEBUG_MISC = extern struct {
DataType: DWORD,
Length: DWORD,
Unicode: BOOLEAN,
Reserved: [3]BYTE,
Data: [1]BYTE,
};
pub const IMAGE_DEBUG_MISC = struct__IMAGE_DEBUG_MISC;
pub const PIMAGE_DEBUG_MISC = ?&struct__IMAGE_DEBUG_MISC;
pub const struct__IMAGE_FUNCTION_ENTRY = extern struct {
StartingAddress: DWORD,
EndingAddress: DWORD,
EndOfPrologue: DWORD,
};
pub const IMAGE_FUNCTION_ENTRY = struct__IMAGE_FUNCTION_ENTRY;
pub const PIMAGE_FUNCTION_ENTRY = ?&struct__IMAGE_FUNCTION_ENTRY;
pub const struct__IMAGE_FUNCTION_ENTRY64 = @OpaqueType();
pub const IMAGE_FUNCTION_ENTRY64 = struct__IMAGE_FUNCTION_ENTRY64;
pub const PIMAGE_FUNCTION_ENTRY64 = ?&struct__IMAGE_FUNCTION_ENTRY64;
pub const struct__IMAGE_SEPARATE_DEBUG_HEADER = extern struct {
Signature: WORD,
Flags: WORD,
Machine: WORD,
Characteristics: WORD,
TimeDateStamp: DWORD,
CheckSum: DWORD,
ImageBase: DWORD,
SizeOfImage: DWORD,
NumberOfSections: DWORD,
ExportedNamesSize: DWORD,
DebugDirectorySize: DWORD,
SectionAlignment: DWORD,
Reserved: [2]DWORD,
};
pub const IMAGE_SEPARATE_DEBUG_HEADER = struct__IMAGE_SEPARATE_DEBUG_HEADER;
pub const PIMAGE_SEPARATE_DEBUG_HEADER = ?&struct__IMAGE_SEPARATE_DEBUG_HEADER;
pub const struct__NON_PAGED_DEBUG_INFO = extern struct {
Signature: WORD,
Flags: WORD,
Size: DWORD,
Machine: WORD,
Characteristics: WORD,
TimeDateStamp: DWORD,
CheckSum: DWORD,
SizeOfImage: DWORD,
ImageBase: ULONGLONG,
};
pub const NON_PAGED_DEBUG_INFO = struct__NON_PAGED_DEBUG_INFO;
pub const PNON_PAGED_DEBUG_INFO = ?&struct__NON_PAGED_DEBUG_INFO;
pub const struct__ImageArchitectureHeader = @OpaqueType();
pub const IMAGE_ARCHITECTURE_HEADER = struct__ImageArchitectureHeader;
pub const PIMAGE_ARCHITECTURE_HEADER = ?&struct__ImageArchitectureHeader;
pub const struct__ImageArchitectureEntry = extern struct {
FixupInstRVA: DWORD,
NewInst: DWORD,
};
pub const IMAGE_ARCHITECTURE_ENTRY = struct__ImageArchitectureEntry;
pub const PIMAGE_ARCHITECTURE_ENTRY = ?&struct__ImageArchitectureEntry;
pub const struct_IMPORT_OBJECT_HEADER = @OpaqueType();
pub const IMPORT_OBJECT_HEADER = struct_IMPORT_OBJECT_HEADER;
pub const IMPORT_OBJECT_CODE: c_int = 0;
pub const IMPORT_OBJECT_DATA: c_int = 1;
pub const IMPORT_OBJECT_CONST: c_int = 2;
pub const enum_IMPORT_OBJECT_TYPE = c_int;
pub const IMPORT_OBJECT_CODE: c_int = 0;
pub const IMPORT_OBJECT_DATA: c_int = 1;
pub const IMPORT_OBJECT_CONST: c_int = 2;
pub const enum_IMPORT_OBJECT_TYPE = c_int;
pub const IMPORT_OBJECT_TYPE = enum_IMPORT_OBJECT_TYPE;
pub const IMPORT_OBJECT_ORDINAL: c_int = 0;
pub const IMPORT_OBJECT_NAME: c_int = 1;
pub const IMPORT_OBJECT_NAME_NO_PREFIX: c_int = 2;
pub const IMPORT_OBJECT_NAME_UNDECORATE: c_int = 3;
pub const enum_IMPORT_OBJECT_NAME_TYPE = c_int;
pub const IMPORT_OBJECT_ORDINAL: c_int = 0;
pub const IMPORT_OBJECT_NAME: c_int = 1;
pub const IMPORT_OBJECT_NAME_NO_PREFIX: c_int = 2;
pub const IMPORT_OBJECT_NAME_UNDECORATE: c_int = 3;
pub const enum_IMPORT_OBJECT_NAME_TYPE = c_int;
pub const IMPORT_OBJECT_NAME_TYPE = enum_IMPORT_OBJECT_NAME_TYPE;
pub const COMIMAGE_FLAGS_ILONLY: c_int = 1;
pub const COMIMAGE_FLAGS_32BITREQUIRED: c_int = 2;
pub const COMIMAGE_FLAGS_IL_LIBRARY: c_int = 4;
pub const COMIMAGE_FLAGS_STRONGNAMESIGNED: c_int = 8;
pub const COMIMAGE_FLAGS_NATIVE_ENTRYPOINT: c_int = 16;
pub const COMIMAGE_FLAGS_TRACKDEBUGDATA: c_int = 65536;
pub const COR_VERSION_MAJOR_V2: c_int = 2;
pub const COR_VERSION_MAJOR: c_int = 2;
pub const COR_VERSION_MINOR: c_int = 5;
pub const COR_DELETED_NAME_LENGTH: c_int = 8;
pub const COR_VTABLEGAP_NAME_LENGTH: c_int = 8;
pub const NATIVE_TYPE_MAX_CB: c_int = 1;
pub const COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE: c_int = 255;
pub const IMAGE_COR_MIH_METHODRVA: c_int = 1;
pub const IMAGE_COR_MIH_EHRVA: c_int = 2;
pub const IMAGE_COR_MIH_BASICBLOCK: c_int = 8;
pub const COR_VTABLE_32BIT: c_int = 1;
pub const COR_VTABLE_64BIT: c_int = 2;
pub const COR_VTABLE_FROM_UNMANAGED: c_int = 4;
pub const COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN: c_int = 8;
pub const COR_VTABLE_CALL_MOST_DERIVED: c_int = 16;
pub const IMAGE_COR_EATJ_THUNK_SIZE: c_int = 32;
pub const MAX_CLASS_NAME: c_int = 1024;
pub const MAX_PACKAGE_NAME: c_int = 1024;
pub const enum_ReplacesCorHdrNumericDefines = c_int;
pub const COMIMAGE_FLAGS_ILONLY: c_int = 1;
pub const COMIMAGE_FLAGS_32BITREQUIRED: c_int = 2;
pub const COMIMAGE_FLAGS_IL_LIBRARY: c_int = 4;
pub const COMIMAGE_FLAGS_STRONGNAMESIGNED: c_int = 8;
pub const COMIMAGE_FLAGS_NATIVE_ENTRYPOINT: c_int = 16;
pub const COMIMAGE_FLAGS_TRACKDEBUGDATA: c_int = 65536;
pub const COR_VERSION_MAJOR_V2: c_int = 2;
pub const COR_VERSION_MAJOR: c_int = 2;
pub const COR_VERSION_MINOR: c_int = 5;
pub const COR_DELETED_NAME_LENGTH: c_int = 8;
pub const COR_VTABLEGAP_NAME_LENGTH: c_int = 8;
pub const NATIVE_TYPE_MAX_CB: c_int = 1;
pub const COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE: c_int = 255;
pub const IMAGE_COR_MIH_METHODRVA: c_int = 1;
pub const IMAGE_COR_MIH_EHRVA: c_int = 2;
pub const IMAGE_COR_MIH_BASICBLOCK: c_int = 8;
pub const COR_VTABLE_32BIT: c_int = 1;
pub const COR_VTABLE_64BIT: c_int = 2;
pub const COR_VTABLE_FROM_UNMANAGED: c_int = 4;
pub const COR_VTABLE_FROM_UNMANAGED_RETAIN_APPDOMAIN: c_int = 8;
pub const COR_VTABLE_CALL_MOST_DERIVED: c_int = 16;
pub const IMAGE_COR_EATJ_THUNK_SIZE: c_int = 32;
pub const MAX_CLASS_NAME: c_int = 1024;
pub const MAX_PACKAGE_NAME: c_int = 1024;
pub const enum_ReplacesCorHdrNumericDefines = c_int;
pub const ReplacesCorHdrNumericDefines = enum_ReplacesCorHdrNumericDefines;
pub const struct_IMAGE_COR20_HEADER = @OpaqueType();
pub const IMAGE_COR20_HEADER = struct_IMAGE_COR20_HEADER;
pub const PIMAGE_COR20_HEADER = ?&struct_IMAGE_COR20_HEADER;
pub extern fn RtlCaptureStackBackTrace(FramesToSkip: DWORD, FramesToCapture: DWORD, BackTrace: ?&PVOID, BackTraceHash: PDWORD) -> WORD;
pub extern fn RtlCaptureContext(ContextRecord: PCONTEXT);
pub extern fn RtlUnwind(TargetFrame: PVOID, TargetIp: PVOID, ExceptionRecord: PEXCEPTION_RECORD, ReturnValue: PVOID);
pub extern fn RtlAddFunctionTable(FunctionTable: PRUNTIME_FUNCTION, EntryCount: DWORD, BaseAddress: DWORD64) -> BOOLEAN;
pub extern fn RtlDeleteFunctionTable(FunctionTable: PRUNTIME_FUNCTION) -> BOOLEAN;
pub extern fn RtlInstallFunctionTableCallback(TableIdentifier: DWORD64, BaseAddress: DWORD64, Length: DWORD, Callback: PGET_RUNTIME_FUNCTION_CALLBACK, Context: PVOID, OutOfProcessCallbackDll: PCWSTR) -> BOOLEAN;
pub extern fn RtlAddGrowableFunctionTable(DynamicTable: ?&PVOID, FunctionTable: PRUNTIME_FUNCTION, EntryCount: DWORD, MaximumEntryCount: DWORD, RangeBase: ULONG_PTR, RangeEnd: ULONG_PTR) -> DWORD;
pub extern fn RtlGrowFunctionTable(DynamicTable: PVOID, NewEntryCount: DWORD);
pub extern fn RtlDeleteGrowableFunctionTable(DynamicTable: PVOID);
pub extern fn RtlLookupFunctionEntry(ControlPc: DWORD64, ImageBase: PDWORD64, HistoryTable: PUNWIND_HISTORY_TABLE) -> PRUNTIME_FUNCTION;
pub extern fn RtlRestoreContext(ContextRecord: PCONTEXT, ExceptionRecord: ?&struct__EXCEPTION_RECORD);
pub extern fn RtlUnwindEx(TargetFrame: PVOID, TargetIp: PVOID, ExceptionRecord: PEXCEPTION_RECORD, ReturnValue: PVOID, ContextRecord: PCONTEXT, HistoryTable: PUNWIND_HISTORY_TABLE);
pub extern fn RtlVirtualUnwind(HandlerType: DWORD, ImageBase: DWORD64, ControlPc: DWORD64, FunctionEntry: PRUNTIME_FUNCTION, ContextRecord: PCONTEXT, HandlerData: ?&PVOID, EstablisherFrame: PDWORD64, ContextPointers: PKNONVOLATILE_CONTEXT_POINTERS) -> PEXCEPTION_ROUTINE;
pub extern fn RtlPcToFileHeader(PcValue: PVOID, BaseOfImage: ?&PVOID) -> PVOID;
pub extern fn RtlCompareMemory(Source1: ?&const c_void, Source2: ?&const c_void, Length: SIZE_T) -> SIZE_T;
pub const struct__SLIST_ENTRY = extern struct {
Next: ?&struct__SLIST_ENTRY,
};
pub const SLIST_ENTRY = struct__SLIST_ENTRY;
pub const PSLIST_ENTRY = ?&struct__SLIST_ENTRY;
pub const struct__RTL_BARRIER = extern struct {
Reserved1: DWORD,
Reserved2: DWORD,
Reserved3: [2]ULONG_PTR,
Reserved4: DWORD,
Reserved5: DWORD,
};
pub const RTL_BARRIER = struct__RTL_BARRIER;
pub const PRTL_BARRIER = ?&struct__RTL_BARRIER;
pub extern fn __fastfail(Code: c_uint) -> noreturn;
pub const struct__MESSAGE_RESOURCE_ENTRY = extern struct {
Length: WORD,
Flags: WORD,
Text: [1]BYTE,
};
pub const MESSAGE_RESOURCE_ENTRY = struct__MESSAGE_RESOURCE_ENTRY;
pub const PMESSAGE_RESOURCE_ENTRY = ?&struct__MESSAGE_RESOURCE_ENTRY;
pub const struct__MESSAGE_RESOURCE_BLOCK = extern struct {
LowId: DWORD,
HighId: DWORD,
OffsetToEntries: DWORD,
};
pub const MESSAGE_RESOURCE_BLOCK = struct__MESSAGE_RESOURCE_BLOCK;
pub const PMESSAGE_RESOURCE_BLOCK = ?&struct__MESSAGE_RESOURCE_BLOCK;
pub const struct__MESSAGE_RESOURCE_DATA = extern struct {
NumberOfBlocks: DWORD,
Blocks: [1]MESSAGE_RESOURCE_BLOCK,
};
pub const MESSAGE_RESOURCE_DATA = struct__MESSAGE_RESOURCE_DATA;
pub const PMESSAGE_RESOURCE_DATA = ?&struct__MESSAGE_RESOURCE_DATA;
pub const struct__OSVERSIONINFOA = extern struct {
dwOSVersionInfoSize: DWORD,
dwMajorVersion: DWORD,
dwMinorVersion: DWORD,
dwBuildNumber: DWORD,
dwPlatformId: DWORD,
szCSDVersion: [128]CHAR,
};
pub const OSVERSIONINFOA = struct__OSVERSIONINFOA;
pub const POSVERSIONINFOA = ?&struct__OSVERSIONINFOA;
pub const LPOSVERSIONINFOA = ?&struct__OSVERSIONINFOA;
pub const struct__OSVERSIONINFOW = extern struct {
dwOSVersionInfoSize: DWORD,
dwMajorVersion: DWORD,
dwMinorVersion: DWORD,
dwBuildNumber: DWORD,
dwPlatformId: DWORD,
szCSDVersion: [128]WCHAR,
};
pub const OSVERSIONINFOW = struct__OSVERSIONINFOW;
pub const POSVERSIONINFOW = ?&struct__OSVERSIONINFOW;
pub const LPOSVERSIONINFOW = ?&struct__OSVERSIONINFOW;
pub const RTL_OSVERSIONINFOW = struct__OSVERSIONINFOW;
pub const PRTL_OSVERSIONINFOW = ?&struct__OSVERSIONINFOW;
pub const OSVERSIONINFO = OSVERSIONINFOA;
pub const POSVERSIONINFO = POSVERSIONINFOA;
pub const LPOSVERSIONINFO = LPOSVERSIONINFOA;
pub const struct__OSVERSIONINFOEXA = extern struct {
dwOSVersionInfoSize: DWORD,
dwMajorVersion: DWORD,
dwMinorVersion: DWORD,
dwBuildNumber: DWORD,
dwPlatformId: DWORD,
szCSDVersion: [128]CHAR,
wServicePackMajor: WORD,
wServicePackMinor: WORD,
wSuiteMask: WORD,
wProductType: BYTE,
wReserved: BYTE,
};
pub const OSVERSIONINFOEXA = struct__OSVERSIONINFOEXA;
pub const POSVERSIONINFOEXA = ?&struct__OSVERSIONINFOEXA;
pub const LPOSVERSIONINFOEXA = ?&struct__OSVERSIONINFOEXA;
pub const struct__OSVERSIONINFOEXW = extern struct {
dwOSVersionInfoSize: DWORD,
dwMajorVersion: DWORD,
dwMinorVersion: DWORD,
dwBuildNumber: DWORD,
dwPlatformId: DWORD,
szCSDVersion: [128]WCHAR,
wServicePackMajor: WORD,
wServicePackMinor: WORD,
wSuiteMask: WORD,
wProductType: BYTE,
wReserved: BYTE,
};
pub const OSVERSIONINFOEXW = struct__OSVERSIONINFOEXW;
pub const POSVERSIONINFOEXW = ?&struct__OSVERSIONINFOEXW;
pub const LPOSVERSIONINFOEXW = ?&struct__OSVERSIONINFOEXW;
pub const RTL_OSVERSIONINFOEXW = struct__OSVERSIONINFOEXW;
pub const PRTL_OSVERSIONINFOEXW = ?&struct__OSVERSIONINFOEXW;
pub const OSVERSIONINFOEX = OSVERSIONINFOEXA;
pub const POSVERSIONINFOEX = POSVERSIONINFOEXA;
pub const LPOSVERSIONINFOEX = LPOSVERSIONINFOEXA;
pub extern fn VerSetConditionMask(ConditionMask: ULONGLONG, TypeMask: DWORD, Condition: BYTE) -> ULONGLONG;
pub extern fn RtlGetProductInfo(OSMajorVersion: DWORD, OSMinorVersion: DWORD, SpMajorVersion: DWORD, SpMinorVersion: DWORD, ReturnedProductType: PDWORD) -> BOOLEAN;
pub const UmsThreadInvalidInfoClass: c_int = 0;
pub const UmsThreadUserContext: c_int = 1;
pub const UmsThreadPriority: c_int = 2;
pub const UmsThreadAffinity: c_int = 3;
pub const UmsThreadTeb: c_int = 4;
pub const UmsThreadIsSuspended: c_int = 5;
pub const UmsThreadIsTerminated: c_int = 6;
pub const UmsThreadMaxInfoClass: c_int = 7;
pub const enum__RTL_UMS_THREAD_INFO_CLASS = c_int;
pub const UmsThreadInvalidInfoClass: c_int = 0;
pub const UmsThreadUserContext: c_int = 1;
pub const UmsThreadPriority: c_int = 2;
pub const UmsThreadAffinity: c_int = 3;
pub const UmsThreadTeb: c_int = 4;
pub const UmsThreadIsSuspended: c_int = 5;
pub const UmsThreadIsTerminated: c_int = 6;
pub const UmsThreadMaxInfoClass: c_int = 7;
pub const enum__RTL_UMS_THREAD_INFO_CLASS = c_int;
pub const RTL_UMS_THREAD_INFO_CLASS = enum__RTL_UMS_THREAD_INFO_CLASS;
pub const UmsThreadInvalidInfoClass: c_int = 0;
pub const UmsThreadUserContext: c_int = 1;
pub const UmsThreadPriority: c_int = 2;
pub const UmsThreadAffinity: c_int = 3;
pub const UmsThreadTeb: c_int = 4;
pub const UmsThreadIsSuspended: c_int = 5;
pub const UmsThreadIsTerminated: c_int = 6;
pub const UmsThreadMaxInfoClass: c_int = 7;
pub const enum__RTL_UMS_THREAD_INFO_CLASS = c_int;
pub const PRTL_UMS_THREAD_INFO_CLASS = ?&enum__RTL_UMS_THREAD_INFO_CLASS;
pub const UmsSchedulerStartup: c_int = 0;
pub const UmsSchedulerThreadBlocked: c_int = 1;
pub const UmsSchedulerThreadYield: c_int = 2;
pub const enum__RTL_UMS_SCHEDULER_REASON = c_int;
pub const UmsSchedulerStartup: c_int = 0;
pub const UmsSchedulerThreadBlocked: c_int = 1;
pub const UmsSchedulerThreadYield: c_int = 2;
pub const enum__RTL_UMS_SCHEDULER_REASON = c_int;
pub const RTL_UMS_SCHEDULER_REASON = enum__RTL_UMS_SCHEDULER_REASON;
pub const UmsSchedulerStartup: c_int = 0;
pub const UmsSchedulerThreadBlocked: c_int = 1;
pub const UmsSchedulerThreadYield: c_int = 2;
pub const enum__RTL_UMS_SCHEDULER_REASON = c_int;
pub const PRTL_UMS_SCHEDULER_REASON = ?&enum__RTL_UMS_SCHEDULER_REASON;
pub const RTL_UMS_SCHEDULER_ENTRY_POINT = extern fn(RTL_UMS_SCHEDULER_REASON, ULONG_PTR, PVOID);
pub const PRTL_UMS_SCHEDULER_ENTRY_POINT = ?&RTL_UMS_SCHEDULER_ENTRY_POINT;
pub extern fn RtlCrc32(Buffer: ?&const c_void, Size: usize, InitialCrc: DWORD) -> DWORD;
pub extern fn RtlCrc64(Buffer: ?&const c_void, Size: usize, InitialCrc: ULONGLONG) -> ULONGLONG;
pub const PRTL_CRITICAL_SECTION_DEBUG = ?&struct__RTL_CRITICAL_SECTION_DEBUG;
pub const struct__RTL_CRITICAL_SECTION = extern struct {
DebugInfo: PRTL_CRITICAL_SECTION_DEBUG,
LockCount: LONG,
RecursionCount: LONG,
OwningThread: HANDLE,
LockSemaphore: HANDLE,
SpinCount: ULONG_PTR,
};
pub const struct__RTL_CRITICAL_SECTION_DEBUG = extern struct {
Type: WORD,
CreatorBackTraceIndex: WORD,
CriticalSection: ?&struct__RTL_CRITICAL_SECTION,
ProcessLocksList: LIST_ENTRY,
EntryCount: DWORD,
ContentionCount: DWORD,
Flags: DWORD,
CreatorBackTraceIndexHigh: WORD,
SpareWORD: WORD,
};
pub const RTL_CRITICAL_SECTION_DEBUG = struct__RTL_CRITICAL_SECTION_DEBUG;
pub const RTL_RESOURCE_DEBUG = struct__RTL_CRITICAL_SECTION_DEBUG;
pub const PRTL_RESOURCE_DEBUG = ?&struct__RTL_CRITICAL_SECTION_DEBUG;
pub const RTL_CRITICAL_SECTION = struct__RTL_CRITICAL_SECTION;
pub const PRTL_CRITICAL_SECTION = ?&struct__RTL_CRITICAL_SECTION;
pub const struct__RTL_SRWLOCK = extern struct {
Ptr: PVOID,
};
pub const RTL_SRWLOCK = struct__RTL_SRWLOCK;
pub const PRTL_SRWLOCK = ?&struct__RTL_SRWLOCK;
pub const struct__RTL_CONDITION_VARIABLE = extern struct {
Ptr: PVOID,
};
pub const RTL_CONDITION_VARIABLE = struct__RTL_CONDITION_VARIABLE;
pub const PRTL_CONDITION_VARIABLE = ?&struct__RTL_CONDITION_VARIABLE;
pub const PAPCFUNC = ?extern fn(ULONG_PTR);
pub const PVECTORED_EXCEPTION_HANDLER = ?extern fn(?&struct__EXCEPTION_POINTERS) -> LONG;
pub const HeapCompatibilityInformation: c_int = 0;
pub const HeapEnableTerminationOnCorruption: c_int = 1;
pub const enum__HEAP_INFORMATION_CLASS = c_int;
pub const HeapCompatibilityInformation: c_int = 0;
pub const HeapEnableTerminationOnCorruption: c_int = 1;
pub const enum__HEAP_INFORMATION_CLASS = c_int;
pub const HEAP_INFORMATION_CLASS = enum__HEAP_INFORMATION_CLASS;
pub const WAITORTIMERCALLBACKFUNC = ?extern fn(PVOID, BOOLEAN);
pub const WORKERCALLBACKFUNC = ?extern fn(PVOID);
pub const APC_CALLBACK_FUNCTION = ?extern fn(DWORD, PVOID, PVOID);
pub const WAITORTIMERCALLBACK = WAITORTIMERCALLBACKFUNC;
pub const PFLS_CALLBACK_FUNCTION = ?extern fn(PVOID);
pub const PSECURE_MEMORY_CACHE_CALLBACK = ?extern fn(PVOID, SIZE_T) -> BOOLEAN;
pub const ActivationContextBasicInformation: c_int = 1;
pub const ActivationContextDetailedInformation: c_int = 2;
pub const AssemblyDetailedInformationInActivationContext: c_int = 3;
pub const FileInformationInAssemblyOfAssemblyInActivationContext: c_int = 4;
pub const RunlevelInformationInActivationContext: c_int = 5;
pub const CompatibilityInformationInActivationContext: c_int = 6;
pub const ActivationContextManifestResourceName: c_int = 7;
pub const MaxActivationContextInfoClass: c_int = 8;
pub const AssemblyDetailedInformationInActivationContxt: c_int = 3;
pub const FileInformationInAssemblyOfAssemblyInActivationContxt: c_int = 4;
pub const enum__ACTIVATION_CONTEXT_INFO_CLASS = c_int;
pub const ActivationContextBasicInformation: c_int = 1;
pub const ActivationContextDetailedInformation: c_int = 2;
pub const AssemblyDetailedInformationInActivationContext: c_int = 3;
pub const FileInformationInAssemblyOfAssemblyInActivationContext: c_int = 4;
pub const RunlevelInformationInActivationContext: c_int = 5;
pub const CompatibilityInformationInActivationContext: c_int = 6;
pub const ActivationContextManifestResourceName: c_int = 7;
pub const MaxActivationContextInfoClass: c_int = 8;
pub const AssemblyDetailedInformationInActivationContxt: c_int = 3;
pub const FileInformationInAssemblyOfAssemblyInActivationContxt: c_int = 4;
pub const enum__ACTIVATION_CONTEXT_INFO_CLASS = c_int;
pub const ACTIVATION_CONTEXT_INFO_CLASS = enum__ACTIVATION_CONTEXT_INFO_CLASS;
pub const struct__ACTIVATION_CONTEXT_QUERY_INDEX = extern struct {
ulAssemblyIndex: DWORD,
ulFileIndexInAssembly: DWORD,
};
pub const ACTIVATION_CONTEXT_QUERY_INDEX = struct__ACTIVATION_CONTEXT_QUERY_INDEX;
pub const PACTIVATION_CONTEXT_QUERY_INDEX = ?&struct__ACTIVATION_CONTEXT_QUERY_INDEX;
pub const PCACTIVATION_CONTEXT_QUERY_INDEX = ?&const struct__ACTIVATION_CONTEXT_QUERY_INDEX;
pub const struct__ASSEMBLY_FILE_DETAILED_INFORMATION = extern struct {
ulFlags: DWORD,
ulFilenameLength: DWORD,
ulPathLength: DWORD,
lpFileName: PCWSTR,
lpFilePath: PCWSTR,
};
pub const ASSEMBLY_FILE_DETAILED_INFORMATION = struct__ASSEMBLY_FILE_DETAILED_INFORMATION;
pub const PASSEMBLY_FILE_DETAILED_INFORMATION = ?&struct__ASSEMBLY_FILE_DETAILED_INFORMATION;
pub const PCASSEMBLY_FILE_DETAILED_INFORMATION = ?&const ASSEMBLY_FILE_DETAILED_INFORMATION;
pub const struct__ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = @OpaqueType();
pub const ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = struct__ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
pub const PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = ?&struct__ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
pub const PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION = ?&const struct__ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
pub const ACTCTX_RUN_LEVEL_UNSPECIFIED: c_int = 0;
pub const ACTCTX_RUN_LEVEL_AS_INVOKER: c_int = 1;
pub const ACTCTX_RUN_LEVEL_HIGHEST_AVAILABLE: c_int = 2;
pub const ACTCTX_RUN_LEVEL_REQUIRE_ADMIN: c_int = 3;
pub const ACTCTX_RUN_LEVEL_NUMBERS: c_int = 4;
pub const ACTCTX_REQUESTED_RUN_LEVEL = c_int;
pub const struct__ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = extern struct {
ulFlags: DWORD,
RunLevel: ACTCTX_REQUESTED_RUN_LEVEL,
UiAccess: DWORD,
};
pub const ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = struct__ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
pub const PACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = ?&struct__ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
pub const PCACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION = ?&const struct__ACTIVATION_CONTEXT_RUN_LEVEL_INFORMATION;
pub const ACTCTX_COMPATIBILITY_ELEMENT_TYPE_UNKNOWN: c_int = 0;
pub const ACTCTX_COMPATIBILITY_ELEMENT_TYPE_OS: c_int = 1;
pub const ACTCTX_COMPATIBILITY_ELEMENT_TYPE_MITIGATION: c_int = 2;
pub const ACTCTX_COMPATIBILITY_ELEMENT_TYPE = c_int;
pub const struct__COMPATIBILITY_CONTEXT_ELEMENT = extern struct {
Id: GUID,
Type: ACTCTX_COMPATIBILITY_ELEMENT_TYPE,
};
pub const COMPATIBILITY_CONTEXT_ELEMENT = struct__COMPATIBILITY_CONTEXT_ELEMENT;
pub const PCOMPATIBILITY_CONTEXT_ELEMENT = ?&struct__COMPATIBILITY_CONTEXT_ELEMENT;
pub const PCCOMPATIBILITY_CONTEXT_ELEMENT = ?&const struct__COMPATIBILITY_CONTEXT_ELEMENT;
pub const struct__ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = @OpaqueType();
pub const ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = struct__ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION;
pub const PACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = ?&struct__ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION;
pub const PCACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION = ?&const struct__ACTIVATION_CONTEXT_COMPATIBILITY_INFORMATION;
pub const struct__SUPPORTED_OS_INFO = extern struct {
OsCount: WORD,
MitigationExist: WORD,
OsList: [4]WORD,
};
pub const SUPPORTED_OS_INFO = struct__SUPPORTED_OS_INFO;
pub const PSUPPORTED_OS_INFO = ?&struct__SUPPORTED_OS_INFO;
pub const struct__ACTIVATION_CONTEXT_DETAILED_INFORMATION = extern struct {
dwFlags: DWORD,
ulFormatVersion: DWORD,
ulAssemblyCount: DWORD,
ulRootManifestPathType: DWORD,
ulRootManifestPathChars: DWORD,
ulRootConfigurationPathType: DWORD,
ulRootConfigurationPathChars: DWORD,
ulAppDirPathType: DWORD,
ulAppDirPathChars: DWORD,
lpRootManifestPath: PCWSTR,
lpRootConfigurationPath: PCWSTR,
lpAppDirPath: PCWSTR,
};
pub const ACTIVATION_CONTEXT_DETAILED_INFORMATION = struct__ACTIVATION_CONTEXT_DETAILED_INFORMATION;
pub const PACTIVATION_CONTEXT_DETAILED_INFORMATION = ?&struct__ACTIVATION_CONTEXT_DETAILED_INFORMATION;
pub const PCACTIVATION_CONTEXT_DETAILED_INFORMATION = ?&const struct__ACTIVATION_CONTEXT_DETAILED_INFORMATION;
pub const struct__HARDWARE_COUNTER_DATA = extern struct {
Type: HARDWARE_COUNTER_TYPE,
Reserved: DWORD,
Value: DWORD64,
};
pub const HARDWARE_COUNTER_DATA = struct__HARDWARE_COUNTER_DATA;
pub const PHARDWARE_COUNTER_DATA = ?&struct__HARDWARE_COUNTER_DATA;
pub const struct__PERFORMANCE_DATA = extern struct {
Size: WORD,
Version: BYTE,
HwCountersCount: BYTE,
ContextSwitchCount: DWORD,
WaitReasonBitMap: DWORD64,
CycleTime: DWORD64,
RetryCount: DWORD,
Reserved: DWORD,
HwCounters: [16]HARDWARE_COUNTER_DATA,
};
pub const PERFORMANCE_DATA = struct__PERFORMANCE_DATA;
pub const PPERFORMANCE_DATA = ?&struct__PERFORMANCE_DATA;
pub const struct__EVENTLOGRECORD = extern struct {
Length: DWORD,
Reserved: DWORD,
RecordNumber: DWORD,
TimeGenerated: DWORD,
TimeWritten: DWORD,
EventID: DWORD,
EventType: WORD,
NumStrings: WORD,
EventCategory: WORD,
ReservedFlags: WORD,
ClosingRecordNumber: DWORD,
StringOffset: DWORD,
UserSidLength: DWORD,
UserSidOffset: DWORD,
DataLength: DWORD,
DataOffset: DWORD,
};
pub const EVENTLOGRECORD = struct__EVENTLOGRECORD;
pub const PEVENTLOGRECORD = ?&struct__EVENTLOGRECORD;
pub const struct__EVENTSFORLOGFILE = @OpaqueType();
pub const EVENTSFORLOGFILE = struct__EVENTSFORLOGFILE;
pub const PEVENTSFORLOGFILE = ?&struct__EVENTSFORLOGFILE;
pub const struct__PACKEDEVENTINFO = @OpaqueType();
pub const PACKEDEVENTINFO = struct__PACKEDEVENTINFO;
pub const PPACKEDEVENTINFO = ?&struct__PACKEDEVENTINFO;
pub const DriverType: c_int = 1;
pub const FileSystemType: c_int = 2;
pub const Win32ServiceOwnProcess: c_int = 16;
pub const Win32ServiceShareProcess: c_int = 32;
pub const AdapterType: c_int = 4;
pub const RecognizerType: c_int = 8;
pub const enum__CM_SERVICE_NODE_TYPE = c_int;
pub const DriverType: c_int = 1;
pub const FileSystemType: c_int = 2;
pub const Win32ServiceOwnProcess: c_int = 16;
pub const Win32ServiceShareProcess: c_int = 32;
pub const AdapterType: c_int = 4;
pub const RecognizerType: c_int = 8;
pub const enum__CM_SERVICE_NODE_TYPE = c_int;
pub const SERVICE_NODE_TYPE = enum__CM_SERVICE_NODE_TYPE;
pub const BootLoad: c_int = 0;
pub const SystemLoad: c_int = 1;
pub const AutoLoad: c_int = 2;
pub const DemandLoad: c_int = 3;
pub const DisableLoad: c_int = 4;
pub const enum__CM_SERVICE_LOAD_TYPE = c_int;
pub const BootLoad: c_int = 0;
pub const SystemLoad: c_int = 1;
pub const AutoLoad: c_int = 2;
pub const DemandLoad: c_int = 3;
pub const DisableLoad: c_int = 4;
pub const enum__CM_SERVICE_LOAD_TYPE = c_int;
pub const SERVICE_LOAD_TYPE = enum__CM_SERVICE_LOAD_TYPE;
pub const IgnoreError: c_int = 0;
pub const NormalError: c_int = 1;
pub const SevereError: c_int = 2;
pub const CriticalError: c_int = 3;
pub const enum__CM_ERROR_CONTROL_TYPE = c_int;
pub const IgnoreError: c_int = 0;
pub const NormalError: c_int = 1;
pub const SevereError: c_int = 2;
pub const CriticalError: c_int = 3;
pub const enum__CM_ERROR_CONTROL_TYPE = c_int;
pub const SERVICE_ERROR_TYPE = enum__CM_ERROR_CONTROL_TYPE;
pub const struct__TAPE_ERASE = extern struct {
Type: DWORD,
Immediate: BOOLEAN,
};
pub const TAPE_ERASE = struct__TAPE_ERASE;
pub const PTAPE_ERASE = ?&struct__TAPE_ERASE;
pub const struct__TAPE_PREPARE = extern struct {
Operation: DWORD,
Immediate: BOOLEAN,
};
pub const TAPE_PREPARE = struct__TAPE_PREPARE;
pub const PTAPE_PREPARE = ?&struct__TAPE_PREPARE;
pub const struct__TAPE_WRITE_MARKS = extern struct {
Type: DWORD,
Count: DWORD,
Immediate: BOOLEAN,
};
pub const TAPE_WRITE_MARKS = struct__TAPE_WRITE_MARKS;
pub const PTAPE_WRITE_MARKS = ?&struct__TAPE_WRITE_MARKS;
pub const struct__TAPE_GET_POSITION = @OpaqueType();
pub const TAPE_GET_POSITION = struct__TAPE_GET_POSITION;
pub const PTAPE_GET_POSITION = ?&struct__TAPE_GET_POSITION;
pub const struct__TAPE_SET_POSITION = @OpaqueType();
pub const TAPE_SET_POSITION = struct__TAPE_SET_POSITION;
pub const PTAPE_SET_POSITION = ?&struct__TAPE_SET_POSITION;
pub const struct__TAPE_GET_DRIVE_PARAMETERS = extern struct {
ECC: BOOLEAN,
Compression: BOOLEAN,
DataPadding: BOOLEAN,
ReportSetmarks: BOOLEAN,
DefaultBlockSize: DWORD,
MaximumBlockSize: DWORD,
MinimumBlockSize: DWORD,
MaximumPartitionCount: DWORD,
FeaturesLow: DWORD,
FeaturesHigh: DWORD,
EOTWarningZoneSize: DWORD,
};
pub const TAPE_GET_DRIVE_PARAMETERS = struct__TAPE_GET_DRIVE_PARAMETERS;
pub const PTAPE_GET_DRIVE_PARAMETERS = ?&struct__TAPE_GET_DRIVE_PARAMETERS;
pub const struct__TAPE_SET_DRIVE_PARAMETERS = extern struct {
ECC: BOOLEAN,
Compression: BOOLEAN,
DataPadding: BOOLEAN,
ReportSetmarks: BOOLEAN,
EOTWarningZoneSize: DWORD,
};
pub const TAPE_SET_DRIVE_PARAMETERS = struct__TAPE_SET_DRIVE_PARAMETERS;
pub const PTAPE_SET_DRIVE_PARAMETERS = ?&struct__TAPE_SET_DRIVE_PARAMETERS;
pub const struct__TAPE_GET_MEDIA_PARAMETERS = @OpaqueType();
pub const TAPE_GET_MEDIA_PARAMETERS = struct__TAPE_GET_MEDIA_PARAMETERS;
pub const PTAPE_GET_MEDIA_PARAMETERS = ?&struct__TAPE_GET_MEDIA_PARAMETERS;
pub const struct__TAPE_SET_MEDIA_PARAMETERS = extern struct {
BlockSize: DWORD,
};
pub const TAPE_SET_MEDIA_PARAMETERS = struct__TAPE_SET_MEDIA_PARAMETERS;
pub const PTAPE_SET_MEDIA_PARAMETERS = ?&struct__TAPE_SET_MEDIA_PARAMETERS;
pub const struct__TAPE_CREATE_PARTITION = extern struct {
Method: DWORD,
Count: DWORD,
Size: DWORD,
};
pub const TAPE_CREATE_PARTITION = struct__TAPE_CREATE_PARTITION;
pub const PTAPE_CREATE_PARTITION = ?&struct__TAPE_CREATE_PARTITION;
pub const struct__TAPE_WMI_OPERATIONS = extern struct {
Method: DWORD,
DataBufferSize: DWORD,
DataBuffer: PVOID,
};
pub const TAPE_WMI_OPERATIONS = struct__TAPE_WMI_OPERATIONS;
pub const PTAPE_WMI_OPERATIONS = ?&struct__TAPE_WMI_OPERATIONS;
pub const TapeDriveProblemNone = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveProblemNone;
pub const TapeDriveReadWriteWarning = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveReadWriteWarning;
pub const TapeDriveReadWriteError = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveReadWriteError;
pub const TapeDriveReadWarning = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveReadWarning;
pub const TapeDriveWriteWarning = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveWriteWarning;
pub const TapeDriveReadError = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveReadError;
pub const TapeDriveWriteError = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveWriteError;
pub const TapeDriveHardwareError = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveHardwareError;
pub const TapeDriveUnsupportedMedia = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveUnsupportedMedia;
pub const TapeDriveScsiConnectionError = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveScsiConnectionError;
pub const TapeDriveTimetoClean = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveTimetoClean;
pub const TapeDriveCleanDriveNow = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveCleanDriveNow;
pub const TapeDriveMediaLifeExpired = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveMediaLifeExpired;
pub const TapeDriveSnappedTape = enum__TAPE_DRIVE_PROBLEM_TYPE.TapeDriveSnappedTape;
pub const enum__TAPE_DRIVE_PROBLEM_TYPE = extern enum {
TapeDriveProblemNone,
TapeDriveReadWriteWarning,
TapeDriveReadWriteError,
TapeDriveReadWarning,
TapeDriveWriteWarning,
TapeDriveReadError,
TapeDriveWriteError,
TapeDriveHardwareError,
TapeDriveUnsupportedMedia,
TapeDriveScsiConnectionError,
TapeDriveTimetoClean,
TapeDriveCleanDriveNow,
TapeDriveMediaLifeExpired,
TapeDriveSnappedTape,
};
pub const TAPE_DRIVE_PROBLEM_TYPE = enum__TAPE_DRIVE_PROBLEM_TYPE;
pub const UOW = GUID;
pub const PUOW = ?&GUID;
pub const CRM_PROTOCOL_ID = GUID;
pub const PCRM_PROTOCOL_ID = ?&GUID;
pub const NOTIFICATION_MASK = ULONG;
pub const struct__TRANSACTION_NOTIFICATION = @OpaqueType();
pub const TRANSACTION_NOTIFICATION = struct__TRANSACTION_NOTIFICATION;
pub const PTRANSACTION_NOTIFICATION = ?&struct__TRANSACTION_NOTIFICATION;
pub const struct__TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = extern struct {
EnlistmentId: GUID,
UOW: UOW,
};
pub const TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = struct__TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT;
pub const PTRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT = ?&struct__TRANSACTION_NOTIFICATION_RECOVERY_ARGUMENT;
pub const struct__TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = extern struct {
TmIdentity: GUID,
Flags: ULONG,
};
pub const TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = struct__TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT;
pub const PTRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT = ?&struct__TRANSACTION_NOTIFICATION_TM_ONLINE_ARGUMENT;
pub const SAVEPOINT_ID = ULONG;
pub const PSAVEPOINT_ID = ?&ULONG;
pub const struct__TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = extern struct {
SavepointId: SAVEPOINT_ID,
};
pub const TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = struct__TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT;
pub const PTRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT = ?&struct__TRANSACTION_NOTIFICATION_SAVEPOINT_ARGUMENT;
pub const struct__TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = extern struct {
PropagationCookie: ULONG,
UOW: GUID,
TmIdentity: GUID,
BufferLength: ULONG,
};
pub const TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = struct__TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
pub const PTRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT = ?&struct__TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
pub const struct__TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = extern struct {
MarshalCookie: ULONG,
UOW: GUID,
};
pub const TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = struct__TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT;
pub const PTRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT = ?&struct__TRANSACTION_NOTIFICATION_MARSHAL_ARGUMENT;
pub const TRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT = TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
pub const PTRANSACTION_NOTIFICATION_PROMOTE_ARGUMENT = ?&TRANSACTION_NOTIFICATION_PROPAGATE_ARGUMENT;
pub const struct__KCRM_MARSHAL_HEADER = extern struct {
VersionMajor: ULONG,
VersionMinor: ULONG,
NumProtocols: ULONG,
Unused: ULONG,
};
pub const KCRM_MARSHAL_HEADER = struct__KCRM_MARSHAL_HEADER;
pub const PKCRM_MARSHAL_HEADER = ?&struct__KCRM_MARSHAL_HEADER;
pub const PRKCRM_MARSHAL_HEADER = ?&struct__KCRM_MARSHAL_HEADER;
pub const struct__KCRM_TRANSACTION_BLOB = extern struct {
UOW: UOW,
TmIdentity: GUID,
IsolationLevel: ULONG,
IsolationFlags: ULONG,
Timeout: ULONG,
Description: [64]WCHAR,
};
pub const KCRM_TRANSACTION_BLOB = struct__KCRM_TRANSACTION_BLOB;
pub const PKCRM_TRANSACTION_BLOB = ?&struct__KCRM_TRANSACTION_BLOB;
pub const PRKCRM_TRANSACTION_BLOB = ?&struct__KCRM_TRANSACTION_BLOB;
pub const struct__KCRM_PROTOCOL_BLOB = extern struct {
ProtocolId: CRM_PROTOCOL_ID,
StaticInfoLength: ULONG,
TransactionIdInfoLength: ULONG,
Unused1: ULONG,
Unused2: ULONG,
};
pub const KCRM_PROTOCOL_BLOB = struct__KCRM_PROTOCOL_BLOB;
pub const PKCRM_PROTOCOL_BLOB = ?&struct__KCRM_PROTOCOL_BLOB;
pub const PRKCRM_PROTOCOL_BLOB = ?&struct__KCRM_PROTOCOL_BLOB;
pub const TransactionOutcomeUndetermined: c_int = 1;
pub const TransactionOutcomeCommitted: c_int = 2;
pub const TransactionOutcomeAborted: c_int = 3;
pub const enum__TRANSACTION_OUTCOME = c_int;
pub const TransactionOutcomeUndetermined: c_int = 1;
pub const TransactionOutcomeCommitted: c_int = 2;
pub const TransactionOutcomeAborted: c_int = 3;
pub const enum__TRANSACTION_OUTCOME = c_int;
pub const TRANSACTION_OUTCOME = enum__TRANSACTION_OUTCOME;
pub const TransactionStateNormal: c_int = 1;
pub const TransactionStateIndoubt: c_int = 2;
pub const TransactionStateCommittedNotify: c_int = 3;
pub const enum__TRANSACTION_STATE = c_int;
pub const TransactionStateNormal: c_int = 1;
pub const TransactionStateIndoubt: c_int = 2;
pub const TransactionStateCommittedNotify: c_int = 3;
pub const enum__TRANSACTION_STATE = c_int;
pub const TRANSACTION_STATE = enum__TRANSACTION_STATE;
pub const struct__TRANSACTION_BASIC_INFORMATION = extern struct {
TransactionId: GUID,
State: DWORD,
Outcome: DWORD,
};
pub const TRANSACTION_BASIC_INFORMATION = struct__TRANSACTION_BASIC_INFORMATION;
pub const PTRANSACTION_BASIC_INFORMATION = ?&struct__TRANSACTION_BASIC_INFORMATION;
pub const struct__TRANSACTIONMANAGER_BASIC_INFORMATION = @OpaqueType();
pub const TRANSACTIONMANAGER_BASIC_INFORMATION = struct__TRANSACTIONMANAGER_BASIC_INFORMATION;
pub const PTRANSACTIONMANAGER_BASIC_INFORMATION = ?&struct__TRANSACTIONMANAGER_BASIC_INFORMATION;
pub const struct__TRANSACTIONMANAGER_LOG_INFORMATION = extern struct {
LogIdentity: GUID,
};
pub const TRANSACTIONMANAGER_LOG_INFORMATION = struct__TRANSACTIONMANAGER_LOG_INFORMATION;
pub const PTRANSACTIONMANAGER_LOG_INFORMATION = ?&struct__TRANSACTIONMANAGER_LOG_INFORMATION;
pub const struct__TRANSACTIONMANAGER_LOGPATH_INFORMATION = extern struct {
LogPathLength: DWORD,
LogPath: [1]WCHAR,
};
pub const TRANSACTIONMANAGER_LOGPATH_INFORMATION = struct__TRANSACTIONMANAGER_LOGPATH_INFORMATION;
pub const PTRANSACTIONMANAGER_LOGPATH_INFORMATION = ?&struct__TRANSACTIONMANAGER_LOGPATH_INFORMATION;
pub const struct__TRANSACTIONMANAGER_RECOVERY_INFORMATION = extern struct {
LastRecoveredLsn: ULONGLONG,
};
pub const TRANSACTIONMANAGER_RECOVERY_INFORMATION = struct__TRANSACTIONMANAGER_RECOVERY_INFORMATION;
pub const PTRANSACTIONMANAGER_RECOVERY_INFORMATION = ?&struct__TRANSACTIONMANAGER_RECOVERY_INFORMATION;
pub const struct__TRANSACTIONMANAGER_OLDEST_INFORMATION = extern struct {
OldestTransactionGuid: GUID,
};
pub const TRANSACTIONMANAGER_OLDEST_INFORMATION = struct__TRANSACTIONMANAGER_OLDEST_INFORMATION;
pub const PTRANSACTIONMANAGER_OLDEST_INFORMATION = ?&struct__TRANSACTIONMANAGER_OLDEST_INFORMATION;
pub const struct__TRANSACTION_PROPERTIES_INFORMATION = @OpaqueType();
pub const TRANSACTION_PROPERTIES_INFORMATION = struct__TRANSACTION_PROPERTIES_INFORMATION;
pub const PTRANSACTION_PROPERTIES_INFORMATION = ?&struct__TRANSACTION_PROPERTIES_INFORMATION;
pub const struct__TRANSACTION_BIND_INFORMATION = extern struct {
TmHandle: HANDLE,
};
pub const TRANSACTION_BIND_INFORMATION = struct__TRANSACTION_BIND_INFORMATION;
pub const PTRANSACTION_BIND_INFORMATION = ?&struct__TRANSACTION_BIND_INFORMATION;
pub const struct__TRANSACTION_ENLISTMENT_PAIR = extern struct {
EnlistmentId: GUID,
ResourceManagerId: GUID,
};
pub const TRANSACTION_ENLISTMENT_PAIR = struct__TRANSACTION_ENLISTMENT_PAIR;
pub const PTRANSACTION_ENLISTMENT_PAIR = ?&struct__TRANSACTION_ENLISTMENT_PAIR;
pub const struct__TRANSACTION_ENLISTMENTS_INFORMATION = extern struct {
NumberOfEnlistments: DWORD,
EnlistmentPair: [1]TRANSACTION_ENLISTMENT_PAIR,
};
pub const TRANSACTION_ENLISTMENTS_INFORMATION = struct__TRANSACTION_ENLISTMENTS_INFORMATION;
pub const PTRANSACTION_ENLISTMENTS_INFORMATION = ?&struct__TRANSACTION_ENLISTMENTS_INFORMATION;
pub const struct__TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = extern struct {
SuperiorEnlistmentPair: TRANSACTION_ENLISTMENT_PAIR,
};
pub const TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = struct__TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION;
pub const PTRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION = ?&struct__TRANSACTION_SUPERIOR_ENLISTMENT_INFORMATION;
pub const struct__RESOURCEMANAGER_BASIC_INFORMATION = extern struct {
ResourceManagerId: GUID,
DescriptionLength: DWORD,
Description: [1]WCHAR,
};
pub const RESOURCEMANAGER_BASIC_INFORMATION = struct__RESOURCEMANAGER_BASIC_INFORMATION;
pub const PRESOURCEMANAGER_BASIC_INFORMATION = ?&struct__RESOURCEMANAGER_BASIC_INFORMATION;
pub const struct__RESOURCEMANAGER_COMPLETION_INFORMATION = extern struct {
IoCompletionPortHandle: HANDLE,
CompletionKey: ULONG_PTR,
};
pub const RESOURCEMANAGER_COMPLETION_INFORMATION = struct__RESOURCEMANAGER_COMPLETION_INFORMATION;
pub const PRESOURCEMANAGER_COMPLETION_INFORMATION = ?&struct__RESOURCEMANAGER_COMPLETION_INFORMATION;
pub const TransactionBasicInformation = enum__TRANSACTION_INFORMATION_CLASS.TransactionBasicInformation;
pub const TransactionPropertiesInformation = enum__TRANSACTION_INFORMATION_CLASS.TransactionPropertiesInformation;
pub const TransactionEnlistmentInformation = enum__TRANSACTION_INFORMATION_CLASS.TransactionEnlistmentInformation;
pub const TransactionSuperiorEnlistmentInformation = enum__TRANSACTION_INFORMATION_CLASS.TransactionSuperiorEnlistmentInformation;
pub const TransactionBindInformation = enum__TRANSACTION_INFORMATION_CLASS.TransactionBindInformation;
pub const TransactionDTCPrivateInformation = enum__TRANSACTION_INFORMATION_CLASS.TransactionDTCPrivateInformation;
pub const enum__TRANSACTION_INFORMATION_CLASS = extern enum {
TransactionBasicInformation,
TransactionPropertiesInformation,
TransactionEnlistmentInformation,
TransactionSuperiorEnlistmentInformation,
TransactionBindInformation,
TransactionDTCPrivateInformation,
};
pub const TRANSACTION_INFORMATION_CLASS = enum__TRANSACTION_INFORMATION_CLASS;
pub const TransactionManagerBasicInformation: c_int = 0;
pub const TransactionManagerLogInformation: c_int = 1;
pub const TransactionManagerLogPathInformation: c_int = 2;
pub const TransactionManagerRecoveryInformation: c_int = 4;
pub const TransactionManagerOnlineProbeInformation: c_int = 3;
pub const TransactionManagerOldestTransactionInformation: c_int = 5;
pub const enum__TRANSACTIONMANAGER_INFORMATION_CLASS = c_int;
pub const TransactionManagerBasicInformation: c_int = 0;
pub const TransactionManagerLogInformation: c_int = 1;
pub const TransactionManagerLogPathInformation: c_int = 2;
pub const TransactionManagerRecoveryInformation: c_int = 4;
pub const TransactionManagerOnlineProbeInformation: c_int = 3;
pub const TransactionManagerOldestTransactionInformation: c_int = 5;
pub const enum__TRANSACTIONMANAGER_INFORMATION_CLASS = c_int;
pub const TRANSACTIONMANAGER_INFORMATION_CLASS = enum__TRANSACTIONMANAGER_INFORMATION_CLASS;
pub const ResourceManagerBasicInformation = enum__RESOURCEMANAGER_INFORMATION_CLASS.ResourceManagerBasicInformation;
pub const ResourceManagerCompletionInformation = enum__RESOURCEMANAGER_INFORMATION_CLASS.ResourceManagerCompletionInformation;
pub const enum__RESOURCEMANAGER_INFORMATION_CLASS = extern enum {
ResourceManagerBasicInformation,
ResourceManagerCompletionInformation,
};
pub const RESOURCEMANAGER_INFORMATION_CLASS = enum__RESOURCEMANAGER_INFORMATION_CLASS;
pub const struct__ENLISTMENT_BASIC_INFORMATION = extern struct {
EnlistmentId: GUID,
TransactionId: GUID,
ResourceManagerId: GUID,
};
pub const ENLISTMENT_BASIC_INFORMATION = struct__ENLISTMENT_BASIC_INFORMATION;
pub const PENLISTMENT_BASIC_INFORMATION = ?&struct__ENLISTMENT_BASIC_INFORMATION;
pub const struct__ENLISTMENT_CRM_INFORMATION = extern struct {
CrmTransactionManagerId: GUID,
CrmResourceManagerId: GUID,
CrmEnlistmentId: GUID,
};
pub const ENLISTMENT_CRM_INFORMATION = struct__ENLISTMENT_CRM_INFORMATION;
pub const PENLISTMENT_CRM_INFORMATION = ?&struct__ENLISTMENT_CRM_INFORMATION;
pub const EnlistmentBasicInformation = enum__ENLISTMENT_INFORMATION_CLASS.EnlistmentBasicInformation;
pub const EnlistmentRecoveryInformation = enum__ENLISTMENT_INFORMATION_CLASS.EnlistmentRecoveryInformation;
pub const EnlistmentCrmInformation = enum__ENLISTMENT_INFORMATION_CLASS.EnlistmentCrmInformation;
pub const enum__ENLISTMENT_INFORMATION_CLASS = extern enum {
EnlistmentBasicInformation,
EnlistmentRecoveryInformation,
EnlistmentCrmInformation,
};
pub const ENLISTMENT_INFORMATION_CLASS = enum__ENLISTMENT_INFORMATION_CLASS;
pub const struct__TRANSACTION_LIST_ENTRY = extern struct {
UOW: UOW,
};
pub const TRANSACTION_LIST_ENTRY = struct__TRANSACTION_LIST_ENTRY;
pub const PTRANSACTION_LIST_ENTRY = ?&struct__TRANSACTION_LIST_ENTRY;
pub const struct__TRANSACTION_LIST_INFORMATION = extern struct {
NumberOfTransactions: DWORD,
TransactionInformation: [1]TRANSACTION_LIST_ENTRY,
};
pub const TRANSACTION_LIST_INFORMATION = struct__TRANSACTION_LIST_INFORMATION;
pub const PTRANSACTION_LIST_INFORMATION = ?&struct__TRANSACTION_LIST_INFORMATION;
pub const KTMOBJECT_TRANSACTION = enum__KTMOBJECT_TYPE.KTMOBJECT_TRANSACTION;
pub const KTMOBJECT_TRANSACTION_MANAGER = enum__KTMOBJECT_TYPE.KTMOBJECT_TRANSACTION_MANAGER;
pub const KTMOBJECT_RESOURCE_MANAGER = enum__KTMOBJECT_TYPE.KTMOBJECT_RESOURCE_MANAGER;
pub const KTMOBJECT_ENLISTMENT = enum__KTMOBJECT_TYPE.KTMOBJECT_ENLISTMENT;
pub const KTMOBJECT_INVALID = enum__KTMOBJECT_TYPE.KTMOBJECT_INVALID;
pub const enum__KTMOBJECT_TYPE = extern enum {
KTMOBJECT_TRANSACTION,
KTMOBJECT_TRANSACTION_MANAGER,
KTMOBJECT_RESOURCE_MANAGER,
KTMOBJECT_ENLISTMENT,
KTMOBJECT_INVALID,
};
pub const KTMOBJECT_TYPE = enum__KTMOBJECT_TYPE;
pub const PKTMOBJECT_TYPE = ?&enum__KTMOBJECT_TYPE;
pub const struct__KTMOBJECT_CURSOR = extern struct {
LastQuery: GUID,
ObjectIdCount: DWORD,
ObjectIds: [1]GUID,
};
pub const KTMOBJECT_CURSOR = struct__KTMOBJECT_CURSOR;
pub const PKTMOBJECT_CURSOR = ?&struct__KTMOBJECT_CURSOR;
pub const TP_VERSION = DWORD;
pub const PTP_VERSION = ?&DWORD;
pub const struct__TP_CALLBACK_INSTANCE = @OpaqueType();
pub const TP_CALLBACK_INSTANCE = struct__TP_CALLBACK_INSTANCE;
pub const PTP_CALLBACK_INSTANCE = ?&struct__TP_CALLBACK_INSTANCE;
pub const PTP_SIMPLE_CALLBACK = ?extern fn(PTP_CALLBACK_INSTANCE, PVOID);
pub const struct__TP_POOL = @OpaqueType();
pub const TP_POOL = struct__TP_POOL;
pub const PTP_POOL = ?&struct__TP_POOL;
pub const TP_CALLBACK_PRIORITY_HIGH: c_int = 0;
pub const TP_CALLBACK_PRIORITY_NORMAL: c_int = 1;
pub const TP_CALLBACK_PRIORITY_LOW: c_int = 2;
pub const TP_CALLBACK_PRIORITY_INVALID: c_int = 3;
pub const TP_CALLBACK_PRIORITY_COUNT: c_int = 3;
pub const enum__TP_CALLBACK_PRIORITY = c_int;
pub const TP_CALLBACK_PRIORITY_HIGH: c_int = 0;
pub const TP_CALLBACK_PRIORITY_NORMAL: c_int = 1;
pub const TP_CALLBACK_PRIORITY_LOW: c_int = 2;
pub const TP_CALLBACK_PRIORITY_INVALID: c_int = 3;
pub const TP_CALLBACK_PRIORITY_COUNT: c_int = 3;
pub const enum__TP_CALLBACK_PRIORITY = c_int;
pub const TP_CALLBACK_PRIORITY = enum__TP_CALLBACK_PRIORITY;
pub const struct__TP_POOL_STACK_INFORMATION = extern struct {
StackReserve: SIZE_T,
StackCommit: SIZE_T,
};
pub const TP_POOL_STACK_INFORMATION = struct__TP_POOL_STACK_INFORMATION;
pub const PTP_POOL_STACK_INFORMATION = ?&struct__TP_POOL_STACK_INFORMATION;
pub const struct__TP_CLEANUP_GROUP = @OpaqueType();
pub const TP_CLEANUP_GROUP = struct__TP_CLEANUP_GROUP;
pub const PTP_CLEANUP_GROUP = ?&struct__TP_CLEANUP_GROUP;
pub const PTP_CLEANUP_GROUP_CANCEL_CALLBACK = ?extern fn(PVOID, PVOID);
pub const struct__ACTIVATION_CONTEXT = @OpaqueType();
pub const struct__TP_CALLBACK_ENVIRON_V3 = @OpaqueType();
pub const TP_CALLBACK_ENVIRON_V3 = struct__TP_CALLBACK_ENVIRON_V3;
pub const TP_CALLBACK_ENVIRON = TP_CALLBACK_ENVIRON_V3;
pub const PTP_CALLBACK_ENVIRON = ?&TP_CALLBACK_ENVIRON_V3;
pub fn TpSetCallbackThreadpool(CallbackEnviron: PTP_CALLBACK_ENVIRON, Pool: PTP_POOL) {
(??CallbackEnviron).Pool = Pool;
}
pub fn TpSetCallbackCleanupGroup(CallbackEnviron: PTP_CALLBACK_ENVIRON, CleanupGroup: PTP_CLEANUP_GROUP, CleanupGroupCancelCallback: PTP_CLEANUP_GROUP_CANCEL_CALLBACK) {
(??CallbackEnviron).CleanupGroup = CleanupGroup;
(??CallbackEnviron).CleanupGroupCancelCallback = CleanupGroupCancelCallback;
}
pub fn TpSetCallbackActivationContext(CallbackEnviron: PTP_CALLBACK_ENVIRON, ActivationContext: ?&struct__ACTIVATION_CONTEXT) {
(??CallbackEnviron).ActivationContext = ActivationContext;
}
pub fn TpSetCallbackNoActivationContext(CallbackEnviron: PTP_CALLBACK_ENVIRON) {
(??CallbackEnviron).ActivationContext = ?&struct__ACTIVATION_CONTEXT(LONG_PTR(-1));
}
pub fn TpSetCallbackLongFunction(CallbackEnviron: PTP_CALLBACK_ENVIRON) {
(??CallbackEnviron).u.s.LongFunction = DWORD(1);
}
pub fn TpSetCallbackRaceWithDll(CallbackEnviron: PTP_CALLBACK_ENVIRON, DllHandle: PVOID) {
(??CallbackEnviron).RaceDll = DllHandle;
}
pub fn TpSetCallbackFinalizationCallback(CallbackEnviron: PTP_CALLBACK_ENVIRON, FinalizationCallback: PTP_SIMPLE_CALLBACK) {
(??CallbackEnviron).FinalizationCallback = FinalizationCallback;
}
pub fn TpSetCallbackPriority(CallbackEnviron: PTP_CALLBACK_ENVIRON, Priority: TP_CALLBACK_PRIORITY) {
(??CallbackEnviron).CallbackPriority = Priority;
}
pub fn TpSetCallbackPersistent(CallbackEnviron: PTP_CALLBACK_ENVIRON) {
(??CallbackEnviron).u.s.Persistent = DWORD(1);
}
pub fn TpDestroyCallbackEnviron(CallbackEnviron: PTP_CALLBACK_ENVIRON) {
CallbackEnviron;
}
pub const struct__TP_WORK = @OpaqueType();
pub const TP_WORK = struct__TP_WORK;
pub const PTP_WORK = ?&struct__TP_WORK;
pub const PTP_WORK_CALLBACK = ?extern fn(PTP_CALLBACK_INSTANCE, PVOID, PTP_WORK);
pub const struct__TP_TIMER = @OpaqueType();
pub const TP_TIMER = struct__TP_TIMER;
pub const PTP_TIMER = ?&struct__TP_TIMER;
pub const PTP_TIMER_CALLBACK = ?extern fn(PTP_CALLBACK_INSTANCE, PVOID, PTP_TIMER);
pub const TP_WAIT_RESULT = DWORD;
pub const struct__TP_WAIT = @OpaqueType();
pub const TP_WAIT = struct__TP_WAIT;
pub const PTP_WAIT = ?&struct__TP_WAIT;
pub const PTP_WAIT_CALLBACK = ?extern fn(PTP_CALLBACK_INSTANCE, PVOID, PTP_WAIT, TP_WAIT_RESULT);
pub const struct__TP_IO = @OpaqueType();
pub const TP_IO = struct__TP_IO;
pub const PTP_IO = ?&struct__TP_IO;
pub const struct__TEB = @OpaqueType();
pub const WPARAM = UINT_PTR;
pub const LPARAM = LONG_PTR;
pub const LRESULT = LONG_PTR;
pub const SPHANDLE = ?&HANDLE;
pub const LPHANDLE = ?&HANDLE;
pub const HGLOBAL = HANDLE;
pub const HLOCAL = HANDLE;
pub const GLOBALHANDLE = HANDLE;
pub const LOCALHANDLE = HANDLE;
pub const ATOM = WORD;
pub const struct_HKEY__ = extern struct {
unused: c_int,
};
pub const HKEY = ?&struct_HKEY__;
pub const PHKEY = ?&HKEY;
pub const struct_HMETAFILE__ = extern struct {
unused: c_int,
};
pub const HMETAFILE = ?&struct_HMETAFILE__;
pub const struct_HINSTANCE__ = extern struct {
unused: c_int,
};
pub const HINSTANCE = ?&struct_HINSTANCE__;
pub const HMODULE = HINSTANCE;
pub const struct_HRGN__ = extern struct {
unused: c_int,
};
pub const HRGN = ?&struct_HRGN__;
pub const struct_HRSRC__ = extern struct {
unused: c_int,
};
pub const HRSRC = ?&struct_HRSRC__;
pub const struct_HSPRITE__ = extern struct {
unused: c_int,
};
pub const HSPRITE = ?&struct_HSPRITE__;
pub const struct_HLSURF__ = extern struct {
unused: c_int,
};
pub const HLSURF = ?&struct_HLSURF__;
pub const struct_HSTR__ = extern struct {
unused: c_int,
};
pub const HSTR = ?&struct_HSTR__;
pub const struct_HTASK__ = extern struct {
unused: c_int,
};
pub const HTASK = ?&struct_HTASK__;
pub const struct_HWINSTA__ = extern struct {
unused: c_int,
};
pub const HWINSTA = ?&struct_HWINSTA__;
pub const struct_HKL__ = extern struct {
unused: c_int,
};
pub const HKL = ?&struct_HKL__;
pub const HFILE = c_int;
pub const struct__FILETIME = extern struct {
dwLowDateTime: DWORD,
dwHighDateTime: DWORD,
};
pub const FILETIME = struct__FILETIME;
pub const PFILETIME = ?&struct__FILETIME;
pub const LPFILETIME = ?&struct__FILETIME;
pub const struct_HWND__ = extern struct {
unused: c_int,
};
pub const HWND = ?&struct_HWND__;
pub const struct_HHOOK__ = extern struct {
unused: c_int,
};
pub const HHOOK = ?&struct_HHOOK__;
pub const HGDIOBJ = ?&c_void;
pub const struct_HACCEL__ = extern struct {
unused: c_int,
};
pub const HACCEL = ?&struct_HACCEL__;
pub const struct_HBITMAP__ = extern struct {
unused: c_int,
};
pub const HBITMAP = ?&struct_HBITMAP__;
pub const struct_HBRUSH__ = extern struct {
unused: c_int,
};
pub const HBRUSH = ?&struct_HBRUSH__;
pub const struct_HCOLORSPACE__ = extern struct {
unused: c_int,
};
pub const HCOLORSPACE = ?&struct_HCOLORSPACE__;
pub const struct_HDC__ = extern struct {
unused: c_int,
};
pub const HDC = ?&struct_HDC__;
pub const struct_HGLRC__ = extern struct {
unused: c_int,
};
pub const HGLRC = ?&struct_HGLRC__;
pub const struct_HDESK__ = extern struct {
unused: c_int,
};
pub const HDESK = ?&struct_HDESK__;
pub const struct_HENHMETAFILE__ = extern struct {
unused: c_int,
};
pub const HENHMETAFILE = ?&struct_HENHMETAFILE__;
pub const struct_HFONT__ = extern struct {
unused: c_int,
};
pub const HFONT = ?&struct_HFONT__;
pub const struct_HICON__ = extern struct {
unused: c_int,
};
pub const HICON = ?&struct_HICON__;
pub const struct_HMENU__ = extern struct {
unused: c_int,
};
pub const HMENU = ?&struct_HMENU__;
pub const struct_HPALETTE__ = extern struct {
unused: c_int,
};
pub const HPALETTE = ?&struct_HPALETTE__;
pub const struct_HPEN__ = extern struct {
unused: c_int,
};
pub const HPEN = ?&struct_HPEN__;
pub const struct_HWINEVENTHOOK__ = extern struct {
unused: c_int,
};
pub const HWINEVENTHOOK = ?&struct_HWINEVENTHOOK__;
pub const struct_HMONITOR__ = extern struct {
unused: c_int,
};
pub const HMONITOR = ?&struct_HMONITOR__;
pub const struct_HUMPD__ = extern struct {
unused: c_int,
};
pub const HUMPD = ?&struct_HUMPD__;
pub const HCURSOR = HICON;
pub const COLORREF = DWORD;
pub const LPCOLORREF = ?&DWORD;
pub const struct_tagRECT = extern struct {
left: LONG,
top: LONG,
right: LONG,
bottom: LONG,
};
pub const RECT = struct_tagRECT;
pub const PRECT = ?&struct_tagRECT;
pub const NPRECT = ?&struct_tagRECT;
pub const LPRECT = ?&struct_tagRECT;
pub const LPCRECT = ?&const RECT;
pub const struct__RECTL = extern struct {
left: LONG,
top: LONG,
right: LONG,
bottom: LONG,
};
pub const RECTL = struct__RECTL;
pub const PRECTL = ?&struct__RECTL;
pub const LPRECTL = ?&struct__RECTL;
pub const LPCRECTL = ?&const RECTL;
pub const struct_tagPOINT = extern struct {
x: LONG,
y: LONG,
};
pub const POINT = struct_tagPOINT;
pub const PPOINT = ?&struct_tagPOINT;
pub const NPPOINT = ?&struct_tagPOINT;
pub const LPPOINT = ?&struct_tagPOINT;
pub const struct__POINTL = extern struct {
x: LONG,
y: LONG,
};
pub const POINTL = struct__POINTL;
pub const PPOINTL = ?&struct__POINTL;
pub const struct_tagSIZE = extern struct {
cx: LONG,
cy: LONG,
};
pub const SIZE = struct_tagSIZE;
pub const PSIZE = ?&struct_tagSIZE;
pub const LPSIZE = ?&struct_tagSIZE;
pub const SIZEL = SIZE;
pub const PSIZEL = ?&SIZE;
pub const LPSIZEL = ?&SIZE;
pub const struct_tagPOINTS = extern struct {
x: SHORT,
y: SHORT,
};
pub const POINTS = struct_tagPOINTS;
pub const PPOINTS = ?&struct_tagPOINTS;
pub const LPPOINTS = ?&struct_tagPOINTS;
pub const struct__SECURITY_ATTRIBUTES = extern struct {
nLength: DWORD,
lpSecurityDescriptor: LPVOID,
bInheritHandle: BOOL,
};
pub const SECURITY_ATTRIBUTES = struct__SECURITY_ATTRIBUTES;
pub const PSECURITY_ATTRIBUTES = ?&struct__SECURITY_ATTRIBUTES;
pub const LPSECURITY_ATTRIBUTES = ?&struct__SECURITY_ATTRIBUTES;
pub const struct__OVERLAPPED = @OpaqueType();
pub const OVERLAPPED = struct__OVERLAPPED;
pub const LPOVERLAPPED = ?&struct__OVERLAPPED;
pub const struct__OVERLAPPED_ENTRY = extern struct {
lpCompletionKey: ULONG_PTR,
lpOverlapped: LPOVERLAPPED,
Internal: ULONG_PTR,
dwNumberOfBytesTransferred: DWORD,
};
pub const OVERLAPPED_ENTRY = struct__OVERLAPPED_ENTRY;
pub const LPOVERLAPPED_ENTRY = ?&struct__OVERLAPPED_ENTRY;
pub const struct__SYSTEMTIME = extern struct {
wYear: WORD,
wMonth: WORD,
wDayOfWeek: WORD,
wDay: WORD,
wHour: WORD,
wMinute: WORD,
wSecond: WORD,
wMilliseconds: WORD,
};
pub const SYSTEMTIME = struct__SYSTEMTIME;
pub const PSYSTEMTIME = ?&struct__SYSTEMTIME;
pub const LPSYSTEMTIME = ?&struct__SYSTEMTIME;
pub const struct__WIN32_FIND_DATAA = extern struct {
dwFileAttributes: DWORD,
ftCreationTime: FILETIME,
ftLastAccessTime: FILETIME,
ftLastWriteTime: FILETIME,
nFileSizeHigh: DWORD,
nFileSizeLow: DWORD,
dwReserved0: DWORD,
dwReserved1: DWORD,
cFileName: [260]CHAR,
cAlternateFileName: [14]CHAR,
};
pub const WIN32_FIND_DATAA = struct__WIN32_FIND_DATAA;
pub const PWIN32_FIND_DATAA = ?&struct__WIN32_FIND_DATAA;
pub const LPWIN32_FIND_DATAA = ?&struct__WIN32_FIND_DATAA;
pub const struct__WIN32_FIND_DATAW = extern struct {
dwFileAttributes: DWORD,
ftCreationTime: FILETIME,
ftLastAccessTime: FILETIME,
ftLastWriteTime: FILETIME,
nFileSizeHigh: DWORD,
nFileSizeLow: DWORD,
dwReserved0: DWORD,
dwReserved1: DWORD,
cFileName: [260]WCHAR,
cAlternateFileName: [14]WCHAR,
};
pub const WIN32_FIND_DATAW = struct__WIN32_FIND_DATAW;
pub const PWIN32_FIND_DATAW = ?&struct__WIN32_FIND_DATAW;
pub const LPWIN32_FIND_DATAW = ?&struct__WIN32_FIND_DATAW;
pub const WIN32_FIND_DATA = WIN32_FIND_DATAA;
pub const PWIN32_FIND_DATA = PWIN32_FIND_DATAA;
pub const LPWIN32_FIND_DATA = LPWIN32_FIND_DATAA;
pub const FindExInfoStandard = enum__FINDEX_INFO_LEVELS.FindExInfoStandard;
pub const FindExInfoBasic = enum__FINDEX_INFO_LEVELS.FindExInfoBasic;
pub const FindExInfoMaxInfoLevel = enum__FINDEX_INFO_LEVELS.FindExInfoMaxInfoLevel;
pub const enum__FINDEX_INFO_LEVELS = extern enum {
FindExInfoStandard,
FindExInfoBasic,
FindExInfoMaxInfoLevel,
};
pub const FINDEX_INFO_LEVELS = enum__FINDEX_INFO_LEVELS;
pub const FindExSearchNameMatch = enum__FINDEX_SEARCH_OPS.FindExSearchNameMatch;
pub const FindExSearchLimitToDirectories = enum__FINDEX_SEARCH_OPS.FindExSearchLimitToDirectories;
pub const FindExSearchLimitToDevices = enum__FINDEX_SEARCH_OPS.FindExSearchLimitToDevices;
pub const FindExSearchMaxSearchOp = enum__FINDEX_SEARCH_OPS.FindExSearchMaxSearchOp;
pub const enum__FINDEX_SEARCH_OPS = extern enum {
FindExSearchNameMatch,
FindExSearchLimitToDirectories,
FindExSearchLimitToDevices,
FindExSearchMaxSearchOp,
};
pub const FINDEX_SEARCH_OPS = enum__FINDEX_SEARCH_OPS;
pub const GetFileExInfoStandard = enum__GET_FILEEX_INFO_LEVELS.GetFileExInfoStandard;
pub const GetFileExMaxInfoLevel = enum__GET_FILEEX_INFO_LEVELS.GetFileExMaxInfoLevel;
pub const enum__GET_FILEEX_INFO_LEVELS = extern enum {
GetFileExInfoStandard,
GetFileExMaxInfoLevel,
};
pub const GET_FILEEX_INFO_LEVELS = enum__GET_FILEEX_INFO_LEVELS;
pub const FileBasicInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileBasicInfo;
pub const FileStandardInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileStandardInfo;
pub const FileNameInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileNameInfo;
pub const FileRenameInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileRenameInfo;
pub const FileDispositionInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileDispositionInfo;
pub const FileAllocationInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileAllocationInfo;
pub const FileEndOfFileInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileEndOfFileInfo;
pub const FileStreamInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileStreamInfo;
pub const FileCompressionInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileCompressionInfo;
pub const FileAttributeTagInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileAttributeTagInfo;
pub const FileIdBothDirectoryInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileIdBothDirectoryInfo;
pub const FileIdBothDirectoryRestartInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileIdBothDirectoryRestartInfo;
pub const FileIoPriorityHintInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileIoPriorityHintInfo;
pub const FileRemoteProtocolInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileRemoteProtocolInfo;
pub const FileFullDirectoryInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileFullDirectoryInfo;
pub const FileFullDirectoryRestartInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileFullDirectoryRestartInfo;
pub const FileStorageInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileStorageInfo;
pub const FileAlignmentInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileAlignmentInfo;
pub const FileIdInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileIdInfo;
pub const FileIdExtdDirectoryInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileIdExtdDirectoryInfo;
pub const FileIdExtdDirectoryRestartInfo = enum__FILE_INFO_BY_HANDLE_CLASS.FileIdExtdDirectoryRestartInfo;
pub const MaximumFileInfoByHandleClass = enum__FILE_INFO_BY_HANDLE_CLASS.MaximumFileInfoByHandleClass;
pub const enum__FILE_INFO_BY_HANDLE_CLASS = extern enum {
FileBasicInfo,
FileStandardInfo,
FileNameInfo,
FileRenameInfo,
FileDispositionInfo,
FileAllocationInfo,
FileEndOfFileInfo,
FileStreamInfo,
FileCompressionInfo,
FileAttributeTagInfo,
FileIdBothDirectoryInfo,
FileIdBothDirectoryRestartInfo,
FileIoPriorityHintInfo,
FileRemoteProtocolInfo,
FileFullDirectoryInfo,
FileFullDirectoryRestartInfo,
FileStorageInfo,
FileAlignmentInfo,
FileIdInfo,
FileIdExtdDirectoryInfo,
FileIdExtdDirectoryRestartInfo,
MaximumFileInfoByHandleClass,
};
pub const FILE_INFO_BY_HANDLE_CLASS = enum__FILE_INFO_BY_HANDLE_CLASS;
pub const PFILE_INFO_BY_HANDLE_CLASS = ?&enum__FILE_INFO_BY_HANDLE_CLASS;
pub const CRITICAL_SECTION = RTL_CRITICAL_SECTION;
pub const PCRITICAL_SECTION = PRTL_CRITICAL_SECTION;
pub const LPCRITICAL_SECTION = PRTL_CRITICAL_SECTION;
pub const CRITICAL_SECTION_DEBUG = RTL_CRITICAL_SECTION_DEBUG;
pub const PCRITICAL_SECTION_DEBUG = PRTL_CRITICAL_SECTION_DEBUG;
pub const LPCRITICAL_SECTION_DEBUG = PRTL_CRITICAL_SECTION_DEBUG;
pub const LPOVERLAPPED_COMPLETION_ROUTINE = ?extern fn(DWORD, DWORD, LPOVERLAPPED);
pub const struct__PROCESS_HEAP_ENTRY = @OpaqueType();
pub const PROCESS_HEAP_ENTRY = struct__PROCESS_HEAP_ENTRY;
pub const LPPROCESS_HEAP_ENTRY = ?&struct__PROCESS_HEAP_ENTRY;
pub const PPROCESS_HEAP_ENTRY = ?&struct__PROCESS_HEAP_ENTRY;
pub const struct__REASON_CONTEXT = @OpaqueType();
pub const REASON_CONTEXT = struct__REASON_CONTEXT;
pub const PREASON_CONTEXT = ?&struct__REASON_CONTEXT;
pub const PTHREAD_START_ROUTINE = ?extern fn(LPVOID) -> DWORD;
pub const LPTHREAD_START_ROUTINE = PTHREAD_START_ROUTINE;
pub const struct__EXCEPTION_DEBUG_INFO = extern struct {
ExceptionRecord: EXCEPTION_RECORD,
dwFirstChance: DWORD,
};
pub const EXCEPTION_DEBUG_INFO = struct__EXCEPTION_DEBUG_INFO;
pub const LPEXCEPTION_DEBUG_INFO = ?&struct__EXCEPTION_DEBUG_INFO;
pub const struct__CREATE_THREAD_DEBUG_INFO = extern struct {
hThread: HANDLE,
lpThreadLocalBase: LPVOID,
lpStartAddress: LPTHREAD_START_ROUTINE,
};
pub const CREATE_THREAD_DEBUG_INFO = struct__CREATE_THREAD_DEBUG_INFO;
pub const LPCREATE_THREAD_DEBUG_INFO = ?&struct__CREATE_THREAD_DEBUG_INFO;
pub const struct__CREATE_PROCESS_DEBUG_INFO = extern struct {
hFile: HANDLE,
hProcess: HANDLE,
hThread: HANDLE,
lpBaseOfImage: LPVOID,
dwDebugInfoFileOffset: DWORD,
nDebugInfoSize: DWORD,
lpThreadLocalBase: LPVOID,
lpStartAddress: LPTHREAD_START_ROUTINE,
lpImageName: LPVOID,
fUnicode: WORD,
};
pub const CREATE_PROCESS_DEBUG_INFO = struct__CREATE_PROCESS_DEBUG_INFO;
pub const LPCREATE_PROCESS_DEBUG_INFO = ?&struct__CREATE_PROCESS_DEBUG_INFO;
pub const struct__EXIT_THREAD_DEBUG_INFO = extern struct {
dwExitCode: DWORD,
};
pub const EXIT_THREAD_DEBUG_INFO = struct__EXIT_THREAD_DEBUG_INFO;
pub const LPEXIT_THREAD_DEBUG_INFO = ?&struct__EXIT_THREAD_DEBUG_INFO;
pub const struct__EXIT_PROCESS_DEBUG_INFO = extern struct {
dwExitCode: DWORD,
};
pub const EXIT_PROCESS_DEBUG_INFO = struct__EXIT_PROCESS_DEBUG_INFO;
pub const LPEXIT_PROCESS_DEBUG_INFO = ?&struct__EXIT_PROCESS_DEBUG_INFO;
pub const struct__LOAD_DLL_DEBUG_INFO = extern struct {
hFile: HANDLE,
lpBaseOfDll: LPVOID,
dwDebugInfoFileOffset: DWORD,
nDebugInfoSize: DWORD,
lpImageName: LPVOID,
fUnicode: WORD,
};
pub const LOAD_DLL_DEBUG_INFO = struct__LOAD_DLL_DEBUG_INFO;
pub const LPLOAD_DLL_DEBUG_INFO = ?&struct__LOAD_DLL_DEBUG_INFO;
pub const struct__UNLOAD_DLL_DEBUG_INFO = extern struct {
lpBaseOfDll: LPVOID,
};
pub const UNLOAD_DLL_DEBUG_INFO = struct__UNLOAD_DLL_DEBUG_INFO;
pub const LPUNLOAD_DLL_DEBUG_INFO = ?&struct__UNLOAD_DLL_DEBUG_INFO;
pub const struct__OUTPUT_DEBUG_STRING_INFO = extern struct {
lpDebugStringData: LPSTR,
fUnicode: WORD,
nDebugStringLength: WORD,
};
pub const OUTPUT_DEBUG_STRING_INFO = struct__OUTPUT_DEBUG_STRING_INFO;
pub const LPOUTPUT_DEBUG_STRING_INFO = ?&struct__OUTPUT_DEBUG_STRING_INFO;
pub const struct__RIP_INFO = extern struct {
dwError: DWORD,
dwType: DWORD,
};
pub const RIP_INFO = struct__RIP_INFO;
pub const LPRIP_INFO = ?&struct__RIP_INFO;
pub const struct__DEBUG_EVENT = @OpaqueType();
pub const DEBUG_EVENT = struct__DEBUG_EVENT;
pub const LPDEBUG_EVENT = ?&struct__DEBUG_EVENT;
pub const LPCONTEXT = PCONTEXT;
pub extern fn GetEnvironmentStrings() -> LPCH;
pub extern fn GetEnvironmentStringsW() -> LPWCH;
pub extern fn SetEnvironmentStringsW(NewEnvironment: LPWCH) -> BOOL;
pub extern fn FreeEnvironmentStringsA(penv: LPCH) -> BOOL;
pub extern fn FreeEnvironmentStringsW(penv: LPWCH) -> BOOL;
pub extern fn GetStdHandle(nStdHandle: DWORD) -> HANDLE;
pub extern fn SetStdHandle(nStdHandle: DWORD, hHandle: HANDLE) -> BOOL;
pub extern fn SetStdHandleEx(nStdHandle: DWORD, hHandle: HANDLE, phPrevValue: PHANDLE) -> BOOL;
pub extern fn GetCommandLineA() -> LPSTR;
pub extern fn GetCommandLineW() -> LPWSTR;
pub extern fn GetEnvironmentVariableA(lpName: LPCSTR, lpBuffer: LPSTR, nSize: DWORD) -> DWORD;
pub extern fn GetEnvironmentVariableW(lpName: LPCWSTR, lpBuffer: LPWSTR, nSize: DWORD) -> DWORD;
pub extern fn SetEnvironmentVariableA(lpName: LPCSTR, lpValue: LPCSTR) -> BOOL;
pub extern fn SetEnvironmentVariableW(lpName: LPCWSTR, lpValue: LPCWSTR) -> BOOL;
pub extern fn ExpandEnvironmentStringsA(lpSrc: LPCSTR, lpDst: LPSTR, nSize: DWORD) -> DWORD;
pub extern fn ExpandEnvironmentStringsW(lpSrc: LPCWSTR, lpDst: LPWSTR, nSize: DWORD) -> DWORD;
pub extern fn SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL;
pub extern fn SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL;
pub extern fn GetCurrentDirectoryA(nBufferLength: DWORD, lpBuffer: LPSTR) -> DWORD;
pub extern fn GetCurrentDirectoryW(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD;
pub extern fn SearchPathW(lpPath: LPCWSTR, lpFileName: LPCWSTR, lpExtension: LPCWSTR, nBufferLength: DWORD, lpBuffer: LPWSTR, lpFilePart: ?&LPWSTR) -> DWORD;
pub extern fn SearchPathA(lpPath: LPCSTR, lpFileName: LPCSTR, lpExtension: LPCSTR, nBufferLength: DWORD, lpBuffer: LPSTR, lpFilePart: ?&LPSTR) -> DWORD;
pub extern fn NeedCurrentDirectoryForExePathA(ExeName: LPCSTR) -> BOOL;
pub extern fn NeedCurrentDirectoryForExePathW(ExeName: LPCWSTR) -> BOOL;
pub extern fn CompareFileTime(lpFileTime1: ?&const FILETIME, lpFileTime2: ?&const FILETIME) -> LONG;
pub extern fn CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> BOOL;
pub extern fn CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> BOOL;
pub extern fn CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE) -> HANDLE;
pub extern fn CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE) -> HANDLE;
pub extern fn DefineDosDeviceW(dwFlags: DWORD, lpDeviceName: LPCWSTR, lpTargetPath: LPCWSTR) -> BOOL;
pub extern fn DeleteFileA(lpFileName: LPCSTR) -> BOOL;
pub extern fn DeleteFileW(lpFileName: LPCWSTR) -> BOOL;
pub extern fn DeleteVolumeMountPointW(lpszVolumeMountPoint: LPCWSTR) -> BOOL;
pub extern fn FileTimeToLocalFileTime(lpFileTime: ?&const FILETIME, lpLocalFileTime: LPFILETIME) -> BOOL;
pub extern fn FindClose(hFindFile: HANDLE) -> BOOL;
pub extern fn FindCloseChangeNotification(hChangeHandle: HANDLE) -> BOOL;
pub extern fn FindFirstChangeNotificationA(lpPathName: LPCSTR, bWatchSubtree: BOOL, dwNotifyFilter: DWORD) -> HANDLE;
pub extern fn FindFirstChangeNotificationW(lpPathName: LPCWSTR, bWatchSubtree: BOOL, dwNotifyFilter: DWORD) -> HANDLE;
pub extern fn FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: LPWIN32_FIND_DATAA) -> HANDLE;
pub extern fn FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: LPWIN32_FIND_DATAW) -> HANDLE;
pub extern fn FindFirstFileExA(lpFileName: LPCSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID, fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD) -> HANDLE;
pub extern fn FindFirstFileExW(lpFileName: LPCWSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID, fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD) -> HANDLE;
pub extern fn FindFirstVolumeW(lpszVolumeName: LPWSTR, cchBufferLength: DWORD) -> HANDLE;
pub extern fn FindNextChangeNotification(hChangeHandle: HANDLE) -> BOOL;
pub extern fn FindNextFileA(hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAA) -> BOOL;
pub extern fn FindNextFileW(hFindFile: HANDLE, lpFindFileData: LPWIN32_FIND_DATAW) -> BOOL;
pub extern fn FindNextVolumeW(hFindVolume: HANDLE, lpszVolumeName: LPWSTR, cchBufferLength: DWORD) -> BOOL;
pub extern fn FindVolumeClose(hFindVolume: HANDLE) -> BOOL;
pub extern fn FlushFileBuffers(hFile: HANDLE) -> BOOL;
pub extern fn GetDiskFreeSpaceA(lpRootPathName: LPCSTR, lpSectorsPerCluster: LPDWORD, lpBytesPerSector: LPDWORD, lpNumberOfFreeClusters: LPDWORD, lpTotalNumberOfClusters: LPDWORD) -> BOOL;
pub extern fn GetDiskFreeSpaceW(lpRootPathName: LPCWSTR, lpSectorsPerCluster: LPDWORD, lpBytesPerSector: LPDWORD, lpNumberOfFreeClusters: LPDWORD, lpTotalNumberOfClusters: LPDWORD) -> BOOL;
pub extern fn GetDriveTypeA(lpRootPathName: LPCSTR) -> UINT;
pub extern fn GetDriveTypeW(lpRootPathName: LPCWSTR) -> UINT;
pub extern fn GetFileAttributesA(lpFileName: LPCSTR) -> DWORD;
pub extern fn GetFileAttributesW(lpFileName: LPCWSTR) -> DWORD;
pub const struct__WIN32_FILE_ATTRIBUTE_DATA = extern struct {
dwFileAttributes: DWORD,
ftCreationTime: FILETIME,
ftLastAccessTime: FILETIME,
ftLastWriteTime: FILETIME,
nFileSizeHigh: DWORD,
nFileSizeLow: DWORD,
};
pub const WIN32_FILE_ATTRIBUTE_DATA = struct__WIN32_FILE_ATTRIBUTE_DATA;
pub const LPWIN32_FILE_ATTRIBUTE_DATA = ?&struct__WIN32_FILE_ATTRIBUTE_DATA;
pub extern fn GetFileAttributesExA(lpFileName: LPCSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID) -> BOOL;
pub extern fn GetFileAttributesExW(lpFileName: LPCWSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID) -> BOOL;
pub const struct__BY_HANDLE_FILE_INFORMATION = extern struct {
dwFileAttributes: DWORD,
ftCreationTime: FILETIME,
ftLastAccessTime: FILETIME,
ftLastWriteTime: FILETIME,
dwVolumeSerialNumber: DWORD,
nFileSizeHigh: DWORD,
nFileSizeLow: DWORD,
nNumberOfLinks: DWORD,
nFileIndexHigh: DWORD,
nFileIndexLow: DWORD,
};
pub const BY_HANDLE_FILE_INFORMATION = struct__BY_HANDLE_FILE_INFORMATION;
pub const PBY_HANDLE_FILE_INFORMATION = ?&struct__BY_HANDLE_FILE_INFORMATION;
pub const LPBY_HANDLE_FILE_INFORMATION = ?&struct__BY_HANDLE_FILE_INFORMATION;
pub extern fn GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: LPBY_HANDLE_FILE_INFORMATION) -> BOOL;
pub extern fn GetFileSize(hFile: HANDLE, lpFileSizeHigh: LPDWORD) -> DWORD;
pub extern fn GetFileTime(hFile: HANDLE, lpCreationTime: LPFILETIME, lpLastAccessTime: LPFILETIME, lpLastWriteTime: LPFILETIME) -> BOOL;
pub extern fn GetFileType(hFile: HANDLE) -> DWORD;
pub extern fn GetFinalPathNameByHandleA(hFile: HANDLE, lpszFilePath: LPSTR, cchFilePath: DWORD, dwFlags: DWORD) -> DWORD;
pub extern fn GetFinalPathNameByHandleW(hFile: HANDLE, lpszFilePath: LPWSTR, cchFilePath: DWORD, dwFlags: DWORD) -> DWORD;
pub extern fn GetFullPathNameA(lpFileName: LPCSTR, nBufferLength: DWORD, lpBuffer: LPSTR, lpFilePart: ?&LPSTR) -> DWORD;
pub extern fn GetFullPathNameW(lpFileName: LPCWSTR, nBufferLength: DWORD, lpBuffer: LPWSTR, lpFilePart: ?&LPWSTR) -> DWORD;
pub extern fn GetLogicalDrives() -> DWORD;
pub extern fn GetLogicalDriveStringsW(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD;
pub extern fn GetLongPathNameA(lpszShortPath: LPCSTR, lpszLongPath: LPSTR, cchBuffer: DWORD) -> DWORD;
pub extern fn GetLongPathNameW(lpszShortPath: LPCWSTR, lpszLongPath: LPWSTR, cchBuffer: DWORD) -> DWORD;
pub extern fn GetShortPathNameW(lpszLongPath: LPCWSTR, lpszShortPath: LPWSTR, cchBuffer: DWORD) -> DWORD;
pub extern fn GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: LPWSTR) -> UINT;
pub extern fn GetVolumeInformationByHandleW(hFile: HANDLE, lpVolumeNameBuffer: LPWSTR, nVolumeNameSize: DWORD, lpVolumeSerialNumber: LPDWORD, lpMaximumComponentLength: LPDWORD, lpFileSystemFlags: LPDWORD, lpFileSystemNameBuffer: LPWSTR, nFileSystemNameSize: DWORD) -> BOOL;
pub extern fn GetVolumeInformationW(lpRootPathName: LPCWSTR, lpVolumeNameBuffer: LPWSTR, nVolumeNameSize: DWORD, lpVolumeSerialNumber: LPDWORD, lpMaximumComponentLength: LPDWORD, lpFileSystemFlags: LPDWORD, lpFileSystemNameBuffer: LPWSTR, nFileSystemNameSize: DWORD) -> BOOL;
pub extern fn GetVolumePathNameW(lpszFileName: LPCWSTR, lpszVolumePathName: LPWSTR, cchBufferLength: DWORD) -> BOOL;
pub extern fn LocalFileTimeToFileTime(lpLocalFileTime: ?&const FILETIME, lpFileTime: LPFILETIME) -> BOOL;
pub extern fn LockFile(hFile: HANDLE, dwFileOffsetLow: DWORD, dwFileOffsetHigh: DWORD, nNumberOfBytesToLockLow: DWORD, nNumberOfBytesToLockHigh: DWORD) -> BOOL;
pub extern fn LockFileEx(hFile: HANDLE, dwFlags: DWORD, dwReserved: DWORD, nNumberOfBytesToLockLow: DWORD, nNumberOfBytesToLockHigh: DWORD, lpOverlapped: LPOVERLAPPED) -> BOOL;
pub extern fn QueryDosDeviceW(lpDeviceName: LPCWSTR, lpTargetPath: LPWSTR, ucchMax: DWORD) -> DWORD;
pub extern fn ReadFile(hFile: HANDLE, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, lpNumberOfBytesRead: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL;
pub extern fn ReadFileEx(hFile: HANDLE, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL;
pub extern fn RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL;
pub extern fn RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL;
pub extern fn SetEndOfFile(hFile: HANDLE) -> BOOL;
pub extern fn SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: DWORD) -> BOOL;
pub extern fn SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: DWORD) -> BOOL;
pub extern fn SetFileInformationByHandle(hFile: HANDLE, FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, lpFileInformation: LPVOID, dwBufferSize: DWORD) -> BOOL;
pub extern fn SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: PLONG, dwMoveMethod: DWORD) -> DWORD;
pub extern fn SetFileTime(hFile: HANDLE, lpCreationTime: ?&const FILETIME, lpLastAccessTime: ?&const FILETIME, lpLastWriteTime: ?&const FILETIME) -> BOOL;
pub extern fn SetFileValidData(hFile: HANDLE, ValidDataLength: LONGLONG) -> BOOL;
pub extern fn UnlockFile(hFile: HANDLE, dwFileOffsetLow: DWORD, dwFileOffsetHigh: DWORD, nNumberOfBytesToUnlockLow: DWORD, nNumberOfBytesToUnlockHigh: DWORD) -> BOOL;
pub extern fn UnlockFileEx(hFile: HANDLE, dwReserved: DWORD, nNumberOfBytesToUnlockLow: DWORD, nNumberOfBytesToUnlockHigh: DWORD, lpOverlapped: LPOVERLAPPED) -> BOOL;
pub extern fn WriteFile(hFile: HANDLE, lpBuffer: LPCVOID, nNumberOfBytesToWrite: DWORD, lpNumberOfBytesWritten: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL;
pub extern fn WriteFileEx(hFile: HANDLE, lpBuffer: LPCVOID, nNumberOfBytesToWrite: DWORD, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL;
pub extern fn GetTempPathW(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD;
pub extern fn GetVolumeNameForVolumeMountPointW(lpszVolumeMountPoint: LPCWSTR, lpszVolumeName: LPWSTR, cchBufferLength: DWORD) -> BOOL;
pub extern fn GetVolumePathNamesForVolumeNameW(lpszVolumeName: LPCWSTR, lpszVolumePathNames: LPWCH, cchBufferLength: DWORD, lpcchReturnLength: PDWORD) -> BOOL;
pub const struct__CREATEFILE2_EXTENDED_PARAMETERS = extern struct {
dwSize: DWORD,
dwFileAttributes: DWORD,
dwFileFlags: DWORD,
dwSecurityQosFlags: DWORD,
lpSecurityAttributes: LPSECURITY_ATTRIBUTES,
hTemplateFile: HANDLE,
};
pub const CREATEFILE2_EXTENDED_PARAMETERS = struct__CREATEFILE2_EXTENDED_PARAMETERS;
pub const PCREATEFILE2_EXTENDED_PARAMETERS = ?&struct__CREATEFILE2_EXTENDED_PARAMETERS;
pub const LPCREATEFILE2_EXTENDED_PARAMETERS = ?&struct__CREATEFILE2_EXTENDED_PARAMETERS;
pub extern fn CreateFile2(lpFileName: LPCWSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, dwCreationDisposition: DWORD, pCreateExParams: LPCREATEFILE2_EXTENDED_PARAMETERS) -> HANDLE;
pub extern fn SetFileIoOverlappedRange(FileHandle: HANDLE, OverlappedRangeStart: PUCHAR, Length: ULONG) -> BOOL;
pub extern fn GetCompressedFileSizeA(lpFileName: LPCSTR, lpFileSizeHigh: LPDWORD) -> DWORD;
pub extern fn GetCompressedFileSizeW(lpFileName: LPCWSTR, lpFileSizeHigh: LPDWORD) -> DWORD;
pub extern fn IsDebuggerPresent() -> BOOL;
pub extern fn DebugBreak();
pub extern fn OutputDebugStringA(lpOutputString: LPCSTR);
pub extern fn OutputDebugStringW(lpOutputString: LPCWSTR);
pub extern fn ContinueDebugEvent(dwProcessId: DWORD, dwThreadId: DWORD, dwContinueStatus: DWORD) -> BOOL;
pub extern fn WaitForDebugEvent(lpDebugEvent: LPDEBUG_EVENT, dwMilliseconds: DWORD) -> BOOL;
pub extern fn DebugActiveProcess(dwProcessId: DWORD) -> BOOL;
pub extern fn DebugActiveProcessStop(dwProcessId: DWORD) -> BOOL;
pub extern fn CheckRemoteDebuggerPresent(hProcess: HANDLE, pbDebuggerPresent: PBOOL) -> BOOL;
pub extern fn EncodePointer(Ptr: PVOID) -> PVOID;
pub extern fn DecodePointer(Ptr: PVOID) -> PVOID;
pub extern fn EncodeSystemPointer(Ptr: PVOID) -> PVOID;
pub extern fn DecodeSystemPointer(Ptr: PVOID) -> PVOID;
pub extern fn Beep(dwFreq: DWORD, dwDuration: DWORD) -> BOOL;
pub extern fn CloseHandle(hObject: HANDLE) -> BOOL;
pub extern fn DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: LPHANDLE, dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwOptions: DWORD) -> BOOL;
pub extern fn GetHandleInformation(hObject: HANDLE, lpdwFlags: LPDWORD) -> BOOL;
pub extern fn SetHandleInformation(hObject: HANDLE, dwMask: DWORD, dwFlags: DWORD) -> BOOL;
pub const PTOP_LEVEL_EXCEPTION_FILTER = ?extern fn(?&struct__EXCEPTION_POINTERS) -> LONG;
pub const LPTOP_LEVEL_EXCEPTION_FILTER = PTOP_LEVEL_EXCEPTION_FILTER;
pub extern fn RaiseException(dwExceptionCode: DWORD, dwExceptionFlags: DWORD, nNumberOfArguments: DWORD, lpArguments: ?&const ULONG_PTR);
pub extern fn UnhandledExceptionFilter(ExceptionInfo: ?&struct__EXCEPTION_POINTERS) -> LONG;
pub extern fn SetUnhandledExceptionFilter(lpTopLevelExceptionFilter: LPTOP_LEVEL_EXCEPTION_FILTER) -> LPTOP_LEVEL_EXCEPTION_FILTER;
pub extern fn GetLastError() -> DWORD;
pub extern fn SetLastError(dwErrCode: DWORD);
pub extern fn GetErrorMode() -> UINT;
pub extern fn SetErrorMode(uMode: UINT) -> UINT;
pub extern fn AddVectoredExceptionHandler(First: ULONG, Handler: PVECTORED_EXCEPTION_HANDLER) -> PVOID;
pub extern fn RemoveVectoredExceptionHandler(Handle: PVOID) -> ULONG;
pub extern fn AddVectoredContinueHandler(First: ULONG, Handler: PVECTORED_EXCEPTION_HANDLER) -> PVOID;
pub extern fn RemoveVectoredContinueHandler(Handle: PVOID) -> ULONG;
pub extern fn FlsAlloc(lpCallback: PFLS_CALLBACK_FUNCTION) -> DWORD;
pub extern fn FlsGetValue(dwFlsIndex: DWORD) -> PVOID;
pub extern fn FlsSetValue(dwFlsIndex: DWORD, lpFlsData: PVOID) -> BOOL;
pub extern fn FlsFree(dwFlsIndex: DWORD) -> BOOL;
pub extern fn IsThreadAFiber() -> BOOL;
pub extern fn CreatePipe(hReadPipe: PHANDLE, hWritePipe: PHANDLE, lpPipeAttributes: LPSECURITY_ATTRIBUTES, nSize: DWORD) -> BOOL;
pub extern fn ConnectNamedPipe(hNamedPipe: HANDLE, lpOverlapped: LPOVERLAPPED) -> BOOL;
pub extern fn DisconnectNamedPipe(hNamedPipe: HANDLE) -> BOOL;
pub extern fn SetNamedPipeHandleState(hNamedPipe: HANDLE, lpMode: LPDWORD, lpMaxCollectionCount: LPDWORD, lpCollectDataTimeout: LPDWORD) -> BOOL;
pub extern fn PeekNamedPipe(hNamedPipe: HANDLE, lpBuffer: LPVOID, nBufferSize: DWORD, lpBytesRead: LPDWORD, lpTotalBytesAvail: LPDWORD, lpBytesLeftThisMessage: LPDWORD) -> BOOL;
pub extern fn TransactNamedPipe(hNamedPipe: HANDLE, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesRead: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL;
pub extern fn CreateNamedPipeW(lpName: LPCWSTR, dwOpenMode: DWORD, dwPipeMode: DWORD, nMaxInstances: DWORD, nOutBufferSize: DWORD, nInBufferSize: DWORD, nDefaultTimeOut: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> HANDLE;
pub extern fn WaitNamedPipeW(lpNamedPipeName: LPCWSTR, nTimeOut: DWORD) -> BOOL;
pub extern fn GetNamedPipeClientComputerNameW(Pipe: HANDLE, ClientComputerName: LPWSTR, ClientComputerNameLength: ULONG) -> BOOL;
pub extern fn ImpersonateNamedPipeClient(hNamedPipe: HANDLE) -> BOOL;
pub const struct__HEAP_SUMMARY = extern struct {
cb: DWORD,
cbAllocated: SIZE_T,
cbCommitted: SIZE_T,
cbReserved: SIZE_T,
cbMaxReserve: SIZE_T,
};
pub const HEAP_SUMMARY = struct__HEAP_SUMMARY;
pub const PHEAP_SUMMARY = ?&struct__HEAP_SUMMARY;
pub const LPHEAP_SUMMARY = PHEAP_SUMMARY;
pub extern fn HeapCreate(flOptions: DWORD, dwInitialSize: SIZE_T, dwMaximumSize: SIZE_T) -> HANDLE;
pub extern fn HeapDestroy(hHeap: HANDLE) -> BOOL;
pub extern fn HeapAlloc(hHeap: HANDLE, dwFlags: DWORD, dwBytes: SIZE_T) -> LPVOID;
pub extern fn HeapReAlloc(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID, dwBytes: SIZE_T) -> LPVOID;
pub extern fn HeapFree(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPVOID) -> BOOL;
pub extern fn HeapSize(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPCVOID) -> SIZE_T;
pub extern fn HeapValidate(hHeap: HANDLE, dwFlags: DWORD, lpMem: LPCVOID) -> BOOL;
pub extern fn HeapCompact(hHeap: HANDLE, dwFlags: DWORD) -> SIZE_T;
pub extern fn HeapSummary(hHeap: HANDLE, dwFlags: DWORD, lpSummary: LPHEAP_SUMMARY) -> BOOL;
pub extern fn GetProcessHeap() -> HANDLE;
pub extern fn GetProcessHeaps(NumberOfHeaps: DWORD, ProcessHeaps: PHANDLE) -> DWORD;
pub extern fn HeapLock(hHeap: HANDLE) -> BOOL;
pub extern fn HeapUnlock(hHeap: HANDLE) -> BOOL;
pub extern fn HeapWalk(hHeap: HANDLE, lpEntry: LPPROCESS_HEAP_ENTRY) -> BOOL;
pub extern fn HeapSetInformation(HeapHandle: HANDLE, HeapInformationClass: HEAP_INFORMATION_CLASS, HeapInformation: PVOID, HeapInformationLength: SIZE_T) -> BOOL;
pub extern fn HeapQueryInformation(HeapHandle: HANDLE, HeapInformationClass: HEAP_INFORMATION_CLASS, HeapInformation: PVOID, HeapInformationLength: SIZE_T, ReturnLength: PSIZE_T) -> BOOL;
pub extern fn GetOverlappedResult(hFile: HANDLE, lpOverlapped: LPOVERLAPPED, lpNumberOfBytesTransferred: LPDWORD, bWait: BOOL) -> BOOL;
pub extern fn CreateIoCompletionPort(FileHandle: HANDLE, ExistingCompletionPort: HANDLE, CompletionKey: ULONG_PTR, NumberOfConcurrentThreads: DWORD) -> HANDLE;
pub extern fn GetQueuedCompletionStatus(CompletionPort: HANDLE, lpNumberOfBytesTransferred: LPDWORD, lpCompletionKey: PULONG_PTR, lpOverlapped: ?&LPOVERLAPPED, dwMilliseconds: DWORD) -> BOOL;
pub extern fn GetQueuedCompletionStatusEx(CompletionPort: HANDLE, lpCompletionPortEntries: LPOVERLAPPED_ENTRY, ulCount: ULONG, ulNumEntriesRemoved: PULONG, dwMilliseconds: DWORD, fAlertable: BOOL) -> BOOL;
pub extern fn PostQueuedCompletionStatus(CompletionPort: HANDLE, dwNumberOfBytesTransferred: DWORD, dwCompletionKey: ULONG_PTR, lpOverlapped: LPOVERLAPPED) -> BOOL;
pub extern fn DeviceIoControl(hDevice: HANDLE, dwIoControlCode: DWORD, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesReturned: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL;
pub extern fn CancelIoEx(hFile: HANDLE, lpOverlapped: LPOVERLAPPED) -> BOOL;
pub extern fn GetOverlappedResultEx(hFile: HANDLE, lpOverlapped: LPOVERLAPPED, lpNumberOfBytesTransferred: LPDWORD, dwMilliseconds: DWORD, bAlertable: BOOL) -> BOOL;
pub extern fn CancelIo(hFile: HANDLE) -> BOOL;
pub extern fn CancelSynchronousIo(hThread: HANDLE) -> BOOL;
pub const SRWLOCK = RTL_SRWLOCK;
pub const PSRWLOCK = ?&RTL_SRWLOCK;
pub extern fn InitializeSRWLock(SRWLock: PSRWLOCK);
pub extern fn ReleaseSRWLockExclusive(SRWLock: PSRWLOCK);
pub extern fn ReleaseSRWLockShared(SRWLock: PSRWLOCK);
pub extern fn AcquireSRWLockExclusive(SRWLock: PSRWLOCK);
pub extern fn AcquireSRWLockShared(SRWLock: PSRWLOCK);
pub extern fn TryAcquireSRWLockExclusive(SRWLock: PSRWLOCK) -> BOOLEAN;
pub extern fn TryAcquireSRWLockShared(SRWLock: PSRWLOCK) -> BOOLEAN;
pub extern fn InitializeCriticalSection(lpCriticalSection: LPCRITICAL_SECTION);
pub extern fn EnterCriticalSection(lpCriticalSection: LPCRITICAL_SECTION);
pub extern fn LeaveCriticalSection(lpCriticalSection: LPCRITICAL_SECTION);
pub extern fn InitializeCriticalSectionAndSpinCount(lpCriticalSection: LPCRITICAL_SECTION, dwSpinCount: DWORD) -> BOOL;
pub extern fn InitializeCriticalSectionEx(lpCriticalSection: LPCRITICAL_SECTION, dwSpinCount: DWORD, Flags: DWORD) -> BOOL;
pub extern fn SetCriticalSectionSpinCount(lpCriticalSection: LPCRITICAL_SECTION, dwSpinCount: DWORD) -> DWORD;
pub extern fn TryEnterCriticalSection(lpCriticalSection: LPCRITICAL_SECTION) -> BOOL;
pub extern fn DeleteCriticalSection(lpCriticalSection: LPCRITICAL_SECTION);
pub const CONDITION_VARIABLE = RTL_CONDITION_VARIABLE;
pub const PCONDITION_VARIABLE = ?&RTL_CONDITION_VARIABLE;
pub extern fn InitializeConditionVariable(ConditionVariable: PCONDITION_VARIABLE);
pub extern fn WakeConditionVariable(ConditionVariable: PCONDITION_VARIABLE);
pub extern fn WakeAllConditionVariable(ConditionVariable: PCONDITION_VARIABLE);
pub extern fn SleepConditionVariableCS(ConditionVariable: PCONDITION_VARIABLE, CriticalSection: PCRITICAL_SECTION, dwMilliseconds: DWORD) -> BOOL;
pub extern fn SleepConditionVariableSRW(ConditionVariable: PCONDITION_VARIABLE, SRWLock: PSRWLOCK, dwMilliseconds: DWORD, Flags: ULONG) -> BOOL;
pub extern fn SetEvent(hEvent: HANDLE) -> BOOL;
pub extern fn ResetEvent(hEvent: HANDLE) -> BOOL;
pub extern fn ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LPLONG) -> BOOL;
pub extern fn ReleaseMutex(hMutex: HANDLE) -> BOOL;
pub extern fn WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: DWORD) -> DWORD;
pub extern fn SleepEx(dwMilliseconds: DWORD, bAlertable: BOOL) -> DWORD;
pub extern fn WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: DWORD, bAlertable: BOOL) -> DWORD;
pub extern fn WaitForMultipleObjectsEx(nCount: DWORD, lpHandles: ?&const HANDLE, bWaitAll: BOOL, dwMilliseconds: DWORD, bAlertable: BOOL) -> DWORD;
pub extern fn CreateMutexA(lpMutexAttributes: LPSECURITY_ATTRIBUTES, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE;
pub extern fn CreateMutexW(lpMutexAttributes: LPSECURITY_ATTRIBUTES, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE;
pub extern fn OpenMutexW(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE;
pub extern fn CreateEventA(lpEventAttributes: LPSECURITY_ATTRIBUTES, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE;
pub extern fn CreateEventW(lpEventAttributes: LPSECURITY_ATTRIBUTES, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE;
pub extern fn OpenEventA(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE;
pub extern fn OpenEventW(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE;
pub extern fn OpenSemaphoreW(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE;
pub const PTIMERAPCROUTINE = ?extern fn(LPVOID, DWORD, DWORD);
pub extern fn OpenWaitableTimerW(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpTimerName: LPCWSTR) -> HANDLE;
pub extern fn CancelWaitableTimer(hTimer: HANDLE) -> BOOL;
pub extern fn CreateMutexExA(lpMutexAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCSTR, dwFlags: DWORD, dwDesiredAccess: DWORD) -> HANDLE;
pub extern fn CreateMutexExW(lpMutexAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD) -> HANDLE;
pub extern fn CreateEventExA(lpEventAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCSTR, dwFlags: DWORD, dwDesiredAccess: DWORD) -> HANDLE;
pub extern fn CreateEventExW(lpEventAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD) -> HANDLE;
pub extern fn CreateSemaphoreExW(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD) -> HANDLE;
pub extern fn CreateWaitableTimerExW(lpTimerAttributes: LPSECURITY_ATTRIBUTES, lpTimerName: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: DWORD) -> HANDLE;
pub const SYNCHRONIZATION_BARRIER = RTL_BARRIER;
pub const PSYNCHRONIZATION_BARRIER = PRTL_BARRIER;
pub const LPSYNCHRONIZATION_BARRIER = PRTL_BARRIER;
pub extern fn EnterSynchronizationBarrier(lpBarrier: LPSYNCHRONIZATION_BARRIER, dwFlags: DWORD) -> BOOL;
pub extern fn InitializeSynchronizationBarrier(lpBarrier: LPSYNCHRONIZATION_BARRIER, lTotalThreads: LONG, lSpinCount: LONG) -> BOOL;
pub extern fn DeleteSynchronizationBarrier(lpBarrier: LPSYNCHRONIZATION_BARRIER) -> BOOL;
pub extern fn Sleep(dwMilliseconds: DWORD);
pub extern fn WaitOnAddress(Address: ?&volatile c_void, CompareAddress: PVOID, AddressSize: SIZE_T, dwMilliseconds: DWORD) -> BOOL;
pub extern fn WakeByAddressSingle(Address: PVOID);
pub extern fn WakeByAddressAll(Address: PVOID);
pub extern fn SignalObjectAndWait(hObjectToSignal: HANDLE, hObjectToWaitOn: HANDLE, dwMilliseconds: DWORD, bAlertable: BOOL) -> DWORD;
pub const struct__PROCESS_INFORMATION = extern struct {
hProcess: HANDLE,
hThread: HANDLE,
dwProcessId: DWORD,
dwThreadId: DWORD,
};
pub const PROCESS_INFORMATION = struct__PROCESS_INFORMATION;
pub const PPROCESS_INFORMATION = ?&struct__PROCESS_INFORMATION;
pub const LPPROCESS_INFORMATION = ?&struct__PROCESS_INFORMATION;
pub const struct__STARTUPINFOA = extern struct {
cb: DWORD,
lpReserved: LPSTR,
lpDesktop: LPSTR,
lpTitle: LPSTR,
dwX: DWORD,
dwY: DWORD,
dwXSize: DWORD,
dwYSize: DWORD,
dwXCountChars: DWORD,
dwYCountChars: DWORD,
dwFillAttribute: DWORD,
dwFlags: DWORD,
wShowWindow: WORD,
cbReserved2: WORD,
lpReserved2: LPBYTE,
hStdInput: HANDLE,
hStdOutput: HANDLE,
hStdError: HANDLE,
};
pub const STARTUPINFOA = struct__STARTUPINFOA;
pub const LPSTARTUPINFOA = ?&struct__STARTUPINFOA;
pub const struct__STARTUPINFOW = extern struct {
cb: DWORD,
lpReserved: LPWSTR,
lpDesktop: LPWSTR,
lpTitle: LPWSTR,
dwX: DWORD,
dwY: DWORD,
dwXSize: DWORD,
dwYSize: DWORD,
dwXCountChars: DWORD,
dwYCountChars: DWORD,
dwFillAttribute: DWORD,
dwFlags: DWORD,
wShowWindow: WORD,
cbReserved2: WORD,
lpReserved2: LPBYTE,
hStdInput: HANDLE,
hStdOutput: HANDLE,
hStdError: HANDLE,
};
pub const STARTUPINFOW = struct__STARTUPINFOW;
pub const LPSTARTUPINFOW = ?&struct__STARTUPINFOW;
pub const STARTUPINFO = STARTUPINFOA;
pub const LPSTARTUPINFO = LPSTARTUPINFOA;
pub extern fn QueueUserAPC(pfnAPC: PAPCFUNC, hThread: HANDLE, dwData: ULONG_PTR) -> DWORD;
pub extern fn GetProcessTimes(hProcess: HANDLE, lpCreationTime: LPFILETIME, lpExitTime: LPFILETIME, lpKernelTime: LPFILETIME, lpUserTime: LPFILETIME) -> BOOL;
pub extern fn GetCurrentProcess() -> HANDLE;
pub extern fn GetCurrentProcessId() -> DWORD;
pub extern fn ExitProcess(uExitCode: UINT) -> noreturn;
pub extern fn TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL;
pub extern fn GetExitCodeProcess(hProcess: HANDLE, lpExitCode: LPDWORD) -> BOOL;
pub extern fn SwitchToThread() -> BOOL;
pub extern fn CreateThread(lpThreadAttributes: LPSECURITY_ATTRIBUTES, dwStackSize: SIZE_T, lpStartAddress: LPTHREAD_START_ROUTINE, lpParameter: LPVOID, dwCreationFlags: DWORD, lpThreadId: LPDWORD) -> HANDLE;
pub extern fn CreateRemoteThread(hProcess: HANDLE, lpThreadAttributes: LPSECURITY_ATTRIBUTES, dwStackSize: SIZE_T, lpStartAddress: LPTHREAD_START_ROUTINE, lpParameter: LPVOID, dwCreationFlags: DWORD, lpThreadId: LPDWORD) -> HANDLE;
pub extern fn GetCurrentThread() -> HANDLE;
pub extern fn GetCurrentThreadId() -> DWORD;
pub extern fn OpenThread(dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwThreadId: DWORD) -> HANDLE;
pub extern fn SetThreadPriority(hThread: HANDLE, nPriority: c_int) -> BOOL;
pub extern fn SetThreadPriorityBoost(hThread: HANDLE, bDisablePriorityBoost: BOOL) -> BOOL;
pub extern fn GetThreadPriorityBoost(hThread: HANDLE, pDisablePriorityBoost: PBOOL) -> BOOL;
pub extern fn GetThreadPriority(hThread: HANDLE) -> c_int;
pub extern fn ExitThread(dwExitCode: DWORD) -> noreturn;
pub extern fn TerminateThread(hThread: HANDLE, dwExitCode: DWORD) -> BOOL;
pub extern fn GetExitCodeThread(hThread: HANDLE, lpExitCode: LPDWORD) -> BOOL;
pub extern fn SuspendThread(hThread: HANDLE) -> DWORD;
pub extern fn ResumeThread(hThread: HANDLE) -> DWORD;
pub extern fn TlsAlloc() -> DWORD;
pub extern fn TlsGetValue(dwTlsIndex: DWORD) -> LPVOID;
pub extern fn TlsSetValue(dwTlsIndex: DWORD, lpTlsValue: LPVOID) -> BOOL;
pub extern fn TlsFree(dwTlsIndex: DWORD) -> BOOL;
pub extern fn CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: LPSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: BOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCSTR, lpStartupInfo: LPSTARTUPINFOA, lpProcessInformation: LPPROCESS_INFORMATION) -> BOOL;
pub extern fn CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: LPWSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: BOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCWSTR, lpStartupInfo: LPSTARTUPINFOW, lpProcessInformation: LPPROCESS_INFORMATION) -> BOOL;
pub extern fn SetProcessShutdownParameters(dwLevel: DWORD, dwFlags: DWORD) -> BOOL;
pub extern fn GetProcessVersion(ProcessId: DWORD) -> DWORD;
pub extern fn GetStartupInfoW(lpStartupInfo: LPSTARTUPINFOW);
pub extern fn CreateProcessAsUserW(hToken: HANDLE, lpApplicationName: LPCWSTR, lpCommandLine: LPWSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: BOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCWSTR, lpStartupInfo: LPSTARTUPINFOW, lpProcessInformation: LPPROCESS_INFORMATION) -> BOOL;
pub extern fn SetThreadToken(Thread: PHANDLE, Token: HANDLE) -> BOOL;
pub extern fn OpenProcessToken(ProcessHandle: HANDLE, DesiredAccess: DWORD, TokenHandle: PHANDLE) -> BOOL;
pub extern fn OpenThreadToken(ThreadHandle: HANDLE, DesiredAccess: DWORD, OpenAsSelf: BOOL, TokenHandle: PHANDLE) -> BOOL;
pub extern fn SetPriorityClass(hProcess: HANDLE, dwPriorityClass: DWORD) -> BOOL;
pub extern fn SetThreadStackGuarantee(StackSizeInBytes: PULONG) -> BOOL;
pub extern fn GetPriorityClass(hProcess: HANDLE) -> DWORD;
pub extern fn ProcessIdToSessionId(dwProcessId: DWORD, pSessionId: ?&DWORD) -> BOOL;
pub extern fn GetProcessId(Process: HANDLE) -> DWORD;
pub extern fn GetThreadId(Thread: HANDLE) -> DWORD;
pub const struct__PROC_THREAD_ATTRIBUTE_LIST = @OpaqueType();
pub const PPROC_THREAD_ATTRIBUTE_LIST = ?&struct__PROC_THREAD_ATTRIBUTE_LIST;
pub const LPPROC_THREAD_ATTRIBUTE_LIST = ?&struct__PROC_THREAD_ATTRIBUTE_LIST;
pub extern fn FlushProcessWriteBuffers();
pub extern fn GetProcessIdOfThread(Thread: HANDLE) -> DWORD;
pub extern fn InitializeProcThreadAttributeList(lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST, dwAttributeCount: DWORD, dwFlags: DWORD, lpSize: PSIZE_T) -> BOOL;
pub extern fn DeleteProcThreadAttributeList(lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST);
pub extern fn SetProcessAffinityUpdateMode(hProcess: HANDLE, dwFlags: DWORD) -> BOOL;
pub extern fn QueryProcessAffinityUpdateMode(hProcess: HANDLE, lpdwFlags: LPDWORD) -> BOOL;
pub extern fn UpdateProcThreadAttribute(lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST, dwFlags: DWORD, Attribute: DWORD_PTR, lpValue: PVOID, cbSize: SIZE_T, lpPreviousValue: PVOID, lpReturnSize: PSIZE_T) -> BOOL;
pub extern fn CreateRemoteThreadEx(hProcess: HANDLE, lpThreadAttributes: LPSECURITY_ATTRIBUTES, dwStackSize: SIZE_T, lpStartAddress: LPTHREAD_START_ROUTINE, lpParameter: LPVOID, dwCreationFlags: DWORD, lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST, lpThreadId: LPDWORD) -> HANDLE;
pub extern fn GetCurrentThreadStackLimits(LowLimit: PULONG_PTR, HighLimit: PULONG_PTR);
pub extern fn GetThreadContext(hThread: HANDLE, lpContext: LPCONTEXT) -> BOOL;
pub extern fn SetThreadContext(hThread: HANDLE, lpContext: ?&const CONTEXT) -> BOOL;
pub extern fn SetProcessMitigationPolicy(MitigationPolicy: PROCESS_MITIGATION_POLICY, lpBuffer: PVOID, dwLength: SIZE_T) -> BOOL;
pub extern fn GetProcessMitigationPolicy(hProcess: HANDLE, MitigationPolicy: PROCESS_MITIGATION_POLICY, lpBuffer: PVOID, dwLength: SIZE_T) -> BOOL;
pub extern fn FlushInstructionCache(hProcess: HANDLE, lpBaseAddress: LPCVOID, dwSize: SIZE_T) -> BOOL;
pub extern fn GetThreadTimes(hThread: HANDLE, lpCreationTime: LPFILETIME, lpExitTime: LPFILETIME, lpKernelTime: LPFILETIME, lpUserTime: LPFILETIME) -> BOOL;
pub extern fn OpenProcess(dwDesiredAccess: DWORD, bInheritHandle: BOOL, dwProcessId: DWORD) -> HANDLE;
pub extern fn IsProcessorFeaturePresent(ProcessorFeature: DWORD) -> BOOL;
pub extern fn GetProcessHandleCount(hProcess: HANDLE, pdwHandleCount: PDWORD) -> BOOL;
pub extern fn GetCurrentProcessorNumber() -> DWORD;
pub extern fn SetThreadIdealProcessorEx(hThread: HANDLE, lpIdealProcessor: PPROCESSOR_NUMBER, lpPreviousIdealProcessor: PPROCESSOR_NUMBER) -> BOOL;
pub extern fn GetThreadIdealProcessorEx(hThread: HANDLE, lpIdealProcessor: PPROCESSOR_NUMBER) -> BOOL;
pub extern fn GetCurrentProcessorNumberEx(ProcNumber: PPROCESSOR_NUMBER);
pub extern fn GetProcessPriorityBoost(hProcess: HANDLE, pDisablePriorityBoost: PBOOL) -> BOOL;
pub extern fn SetProcessPriorityBoost(hProcess: HANDLE, bDisablePriorityBoost: BOOL) -> BOOL;
pub extern fn GetThreadIOPendingFlag(hThread: HANDLE, lpIOIsPending: PBOOL) -> BOOL;
pub extern fn GetSystemTimes(lpIdleTime: PFILETIME, lpKernelTime: PFILETIME, lpUserTime: PFILETIME) -> BOOL;
pub const ThreadMemoryPriority = enum__THREAD_INFORMATION_CLASS.ThreadMemoryPriority;
pub const ThreadAbsoluteCpuPriority = enum__THREAD_INFORMATION_CLASS.ThreadAbsoluteCpuPriority;
pub const ThreadInformationClassMax = enum__THREAD_INFORMATION_CLASS.ThreadInformationClassMax;
pub const enum__THREAD_INFORMATION_CLASS = extern enum {
ThreadMemoryPriority,
ThreadAbsoluteCpuPriority,
ThreadInformationClassMax,
};
pub const THREAD_INFORMATION_CLASS = enum__THREAD_INFORMATION_CLASS;
pub extern fn GetThreadInformation(hThread: HANDLE, ThreadInformationClass: THREAD_INFORMATION_CLASS, ThreadInformation: LPVOID, ThreadInformationSize: DWORD) -> BOOL;
pub extern fn SetThreadInformation(hThread: HANDLE, ThreadInformationClass: THREAD_INFORMATION_CLASS, ThreadInformation: LPVOID, ThreadInformationSize: DWORD) -> BOOL;
pub const struct__MEMORY_PRIORITY_INFORMATION = extern struct {
MemoryPriority: ULONG,
};
pub const MEMORY_PRIORITY_INFORMATION = struct__MEMORY_PRIORITY_INFORMATION;
pub const PMEMORY_PRIORITY_INFORMATION = ?&struct__MEMORY_PRIORITY_INFORMATION;
pub extern fn IsProcessCritical(hProcess: HANDLE, Critical: PBOOL) -> BOOL;
pub extern fn SetProtectedPolicy(PolicyGuid: LPCGUID, PolicyValue: ULONG_PTR, OldPolicyValue: PULONG_PTR) -> BOOL;
pub extern fn QueryProtectedPolicy(PolicyGuid: LPCGUID, PolicyValue: PULONG_PTR) -> BOOL;
pub const struct__SYSTEM_INFO = @OpaqueType();
pub const SYSTEM_INFO = struct__SYSTEM_INFO;
pub const LPSYSTEM_INFO = ?&struct__SYSTEM_INFO;
pub extern fn GetVersion() -> DWORD;
pub const struct__MEMORYSTATUSEX = extern struct {
dwLength: DWORD,
dwMemoryLoad: DWORD,
ullTotalPhys: DWORDLONG,
ullAvailPhys: DWORDLONG,
ullTotalPageFile: DWORDLONG,
ullAvailPageFile: DWORDLONG,
ullTotalVirtual: DWORDLONG,
ullAvailVirtual: DWORDLONG,
ullAvailExtendedVirtual: DWORDLONG,
};
pub const MEMORYSTATUSEX = struct__MEMORYSTATUSEX;
pub const LPMEMORYSTATUSEX = ?&struct__MEMORYSTATUSEX;
pub extern fn GlobalMemoryStatusEx(lpBuffer: LPMEMORYSTATUSEX) -> BOOL;
pub extern fn GetSystemTime(lpSystemTime: LPSYSTEMTIME);
pub extern fn GetSystemTimeAsFileTime(lpSystemTimeAsFileTime: LPFILETIME);
pub extern fn GetLocalTime(lpSystemTime: LPSYSTEMTIME);
pub extern fn SetLocalTime(lpSystemTime: ?&const SYSTEMTIME) -> BOOL;
pub extern fn GetSystemInfo(lpSystemInfo: LPSYSTEM_INFO);
pub extern fn GetTickCount() -> DWORD;
pub extern fn GetTickCount64() -> ULONGLONG;
pub extern fn GetSystemTimeAdjustment(lpTimeAdjustment: PDWORD, lpTimeIncrement: PDWORD, lpTimeAdjustmentDisabled: PBOOL) -> BOOL;
pub extern fn GetSystemDirectoryA(lpBuffer: LPSTR, uSize: UINT) -> UINT;
pub extern fn GetSystemDirectoryW(lpBuffer: LPWSTR, uSize: UINT) -> UINT;
pub extern fn GetWindowsDirectoryA(lpBuffer: LPSTR, uSize: UINT) -> UINT;
pub extern fn GetWindowsDirectoryW(lpBuffer: LPWSTR, uSize: UINT) -> UINT;
pub extern fn GetSystemWindowsDirectoryA(lpBuffer: LPSTR, uSize: UINT) -> UINT;
pub extern fn GetSystemWindowsDirectoryW(lpBuffer: LPWSTR, uSize: UINT) -> UINT;
pub const ComputerNameNetBIOS = enum__COMPUTER_NAME_FORMAT.ComputerNameNetBIOS;
pub const ComputerNameDnsHostname = enum__COMPUTER_NAME_FORMAT.ComputerNameDnsHostname;
pub const ComputerNameDnsDomain = enum__COMPUTER_NAME_FORMAT.ComputerNameDnsDomain;
pub const ComputerNameDnsFullyQualified = enum__COMPUTER_NAME_FORMAT.ComputerNameDnsFullyQualified;
pub const ComputerNamePhysicalNetBIOS = enum__COMPUTER_NAME_FORMAT.ComputerNamePhysicalNetBIOS;
pub const ComputerNamePhysicalDnsHostname = enum__COMPUTER_NAME_FORMAT.ComputerNamePhysicalDnsHostname;
pub const ComputerNamePhysicalDnsDomain = enum__COMPUTER_NAME_FORMAT.ComputerNamePhysicalDnsDomain;
pub const ComputerNamePhysicalDnsFullyQualified = enum__COMPUTER_NAME_FORMAT.ComputerNamePhysicalDnsFullyQualified;
pub const ComputerNameMax = enum__COMPUTER_NAME_FORMAT.ComputerNameMax;
pub const enum__COMPUTER_NAME_FORMAT = extern enum {
ComputerNameNetBIOS,
ComputerNameDnsHostname,
ComputerNameDnsDomain,
ComputerNameDnsFullyQualified,
ComputerNamePhysicalNetBIOS,
ComputerNamePhysicalDnsHostname,
ComputerNamePhysicalDnsDomain,
ComputerNamePhysicalDnsFullyQualified,
ComputerNameMax,
};
pub const COMPUTER_NAME_FORMAT = enum__COMPUTER_NAME_FORMAT;
pub extern fn GetComputerNameExA(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPSTR, nSize: LPDWORD) -> BOOL;
pub extern fn GetComputerNameExW(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPWSTR, nSize: LPDWORD) -> BOOL;
pub extern fn SetComputerNameExW(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCWSTR) -> BOOL;
pub extern fn SetSystemTime(lpSystemTime: ?&const SYSTEMTIME) -> BOOL;
pub extern fn GetVersionExA(lpVersionInformation: LPOSVERSIONINFOA) -> BOOL;
pub extern fn GetVersionExW(lpVersionInformation: LPOSVERSIONINFOW) -> BOOL;
pub extern fn GetLogicalProcessorInformation(Buffer: PSYSTEM_LOGICAL_PROCESSOR_INFORMATION, ReturnedLength: PDWORD) -> BOOL;
pub extern fn GetLogicalProcessorInformationEx(RelationshipType: LOGICAL_PROCESSOR_RELATIONSHIP, Buffer: PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, ReturnedLength: PDWORD) -> BOOL;
pub extern fn GetNativeSystemInfo(lpSystemInfo: LPSYSTEM_INFO);
pub extern fn GetProductInfo(dwOSMajorVersion: DWORD, dwOSMinorVersion: DWORD, dwSpMajorVersion: DWORD, dwSpMinorVersion: DWORD, pdwReturnedProductType: PDWORD) -> BOOL;
pub extern fn GetOsSafeBootMode(Flags: PDWORD) -> BOOL;
pub extern fn GetSystemTimePreciseAsFileTime(lpSystemTimeAsFileTime: LPFILETIME);
pub extern fn EnumSystemFirmwareTables(FirmwareTableProviderSignature: DWORD, pFirmwareTableEnumBuffer: PVOID, BufferSize: DWORD) -> UINT;
pub extern fn GetSystemFirmwareTable(FirmwareTableProviderSignature: DWORD, FirmwareTableID: DWORD, pFirmwareTableBuffer: PVOID, BufferSize: DWORD) -> UINT;
pub extern fn DnsHostnameToComputerNameExW(Hostname: LPCWSTR, ComputerName: LPWSTR, nSize: LPDWORD) -> BOOL;
pub extern fn GetPhysicallyInstalledSystemMemory(TotalMemoryInKilobytes: PULONGLONG) -> BOOL;
pub extern fn SetComputerNameEx2W(NameType: COMPUTER_NAME_FORMAT, Flags: DWORD, lpBuffer: LPCWSTR) -> BOOL;
pub extern fn SetSystemTimeAdjustment(dwTimeAdjustment: DWORD, bTimeAdjustmentDisabled: BOOL) -> BOOL;
pub extern fn InstallELAMCertificateInfo(ELAMFile: HANDLE) -> BOOL;
pub extern fn VirtualAlloc(lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD) -> LPVOID;
pub extern fn VirtualFree(lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD) -> BOOL;
pub extern fn VirtualProtect(lpAddress: LPVOID, dwSize: SIZE_T, flNewProtect: DWORD, lpflOldProtect: PDWORD) -> BOOL;
pub extern fn VirtualQuery(lpAddress: LPCVOID, lpBuffer: PMEMORY_BASIC_INFORMATION, dwLength: SIZE_T) -> SIZE_T;
pub extern fn VirtualAllocEx(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD) -> LPVOID;
pub extern fn VirtualFreeEx(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, dwFreeType: DWORD) -> BOOL;
pub extern fn VirtualProtectEx(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, flNewProtect: DWORD, lpflOldProtect: PDWORD) -> BOOL;
pub extern fn VirtualQueryEx(hProcess: HANDLE, lpAddress: LPCVOID, lpBuffer: PMEMORY_BASIC_INFORMATION, dwLength: SIZE_T) -> SIZE_T;
pub extern fn ReadProcessMemory(hProcess: HANDLE, lpBaseAddress: LPCVOID, lpBuffer: LPVOID, nSize: SIZE_T, lpNumberOfBytesRead: ?&SIZE_T) -> BOOL;
pub extern fn WriteProcessMemory(hProcess: HANDLE, lpBaseAddress: LPVOID, lpBuffer: LPCVOID, nSize: SIZE_T, lpNumberOfBytesWritten: ?&SIZE_T) -> BOOL;
pub extern fn CreateFileMappingW(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCWSTR) -> HANDLE;
pub extern fn OpenFileMappingW(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE;
pub extern fn MapViewOfFile(hFileMappingObject: HANDLE, dwDesiredAccess: DWORD, dwFileOffsetHigh: DWORD, dwFileOffsetLow: DWORD, dwNumberOfBytesToMap: SIZE_T) -> LPVOID;
pub extern fn MapViewOfFileEx(hFileMappingObject: HANDLE, dwDesiredAccess: DWORD, dwFileOffsetHigh: DWORD, dwFileOffsetLow: DWORD, dwNumberOfBytesToMap: SIZE_T, lpBaseAddress: LPVOID) -> LPVOID;
pub extern fn FlushViewOfFile(lpBaseAddress: LPCVOID, dwNumberOfBytesToFlush: SIZE_T) -> BOOL;
pub extern fn UnmapViewOfFile(lpBaseAddress: LPCVOID) -> BOOL;
pub extern fn GetLargePageMinimum() -> SIZE_T;
pub extern fn GetProcessWorkingSetSizeEx(hProcess: HANDLE, lpMinimumWorkingSetSize: PSIZE_T, lpMaximumWorkingSetSize: PSIZE_T, Flags: PDWORD) -> BOOL;
pub extern fn SetProcessWorkingSetSizeEx(hProcess: HANDLE, dwMinimumWorkingSetSize: SIZE_T, dwMaximumWorkingSetSize: SIZE_T, Flags: DWORD) -> BOOL;
pub extern fn VirtualLock(lpAddress: LPVOID, dwSize: SIZE_T) -> BOOL;
pub extern fn VirtualUnlock(lpAddress: LPVOID, dwSize: SIZE_T) -> BOOL;
pub extern fn GetWriteWatch(dwFlags: DWORD, lpBaseAddress: PVOID, dwRegionSize: SIZE_T, lpAddresses: ?&PVOID, lpdwCount: ?&ULONG_PTR, lpdwGranularity: LPDWORD) -> UINT;
pub extern fn ResetWriteWatch(lpBaseAddress: LPVOID, dwRegionSize: SIZE_T) -> UINT;
pub const LowMemoryResourceNotification = enum__MEMORY_RESOURCE_NOTIFICATION_TYPE.LowMemoryResourceNotification;
pub const HighMemoryResourceNotification = enum__MEMORY_RESOURCE_NOTIFICATION_TYPE.HighMemoryResourceNotification;
pub const enum__MEMORY_RESOURCE_NOTIFICATION_TYPE = extern enum {
LowMemoryResourceNotification,
HighMemoryResourceNotification,
};
pub const MEMORY_RESOURCE_NOTIFICATION_TYPE = enum__MEMORY_RESOURCE_NOTIFICATION_TYPE;
pub extern fn CreateMemoryResourceNotification(NotificationType: MEMORY_RESOURCE_NOTIFICATION_TYPE) -> HANDLE;
pub extern fn QueryMemoryResourceNotification(ResourceNotificationHandle: HANDLE, ResourceState: PBOOL) -> BOOL;
pub extern fn GetSystemFileCacheSize(lpMinimumFileCacheSize: PSIZE_T, lpMaximumFileCacheSize: PSIZE_T, lpFlags: PDWORD) -> BOOL;
pub extern fn SetSystemFileCacheSize(MinimumFileCacheSize: SIZE_T, MaximumFileCacheSize: SIZE_T, Flags: DWORD) -> BOOL;
pub extern fn CreateFileMappingNumaW(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCWSTR, nndPreferred: DWORD) -> HANDLE;
pub const struct__WIN32_MEMORY_RANGE_ENTRY = extern struct {
VirtualAddress: PVOID,
NumberOfBytes: SIZE_T,
};
pub const WIN32_MEMORY_RANGE_ENTRY = struct__WIN32_MEMORY_RANGE_ENTRY;
pub const PWIN32_MEMORY_RANGE_ENTRY = ?&struct__WIN32_MEMORY_RANGE_ENTRY;
pub extern fn PrefetchVirtualMemory(hProcess: HANDLE, NumberOfEntries: ULONG_PTR, VirtualAddresses: PWIN32_MEMORY_RANGE_ENTRY, Flags: ULONG) -> BOOL;
pub extern fn UnmapViewOfFileEx(BaseAddress: PVOID, UnmapFlags: ULONG) -> BOOL;
pub extern fn CreateFileMappingFromApp(hFile: HANDLE, SecurityAttributes: PSECURITY_ATTRIBUTES, PageProtection: ULONG, MaximumSize: ULONG64, Name: PCWSTR) -> HANDLE;
pub extern fn MapViewOfFileFromApp(hFileMappingObject: HANDLE, DesiredAccess: ULONG, FileOffset: ULONG64, NumberOfBytesToMap: SIZE_T) -> PVOID;
pub extern fn AllocateUserPhysicalPages(hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR) -> BOOL;
pub extern fn FreeUserPhysicalPages(hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR) -> BOOL;
pub extern fn MapUserPhysicalPages(VirtualAddress: PVOID, NumberOfPages: ULONG_PTR, PageArray: PULONG_PTR) -> BOOL;
pub extern fn AllocateUserPhysicalPagesNuma(hProcess: HANDLE, NumberOfPages: PULONG_PTR, PageArray: PULONG_PTR, nndPreferred: DWORD) -> BOOL;
pub extern fn VirtualAllocExNuma(hProcess: HANDLE, lpAddress: LPVOID, dwSize: SIZE_T, flAllocationType: DWORD, flProtect: DWORD, nndPreferred: DWORD) -> LPVOID;
pub extern fn GetMemoryErrorHandlingCapabilities(Capabilities: PULONG) -> BOOL;
pub const BAD_MEMORY_CALLBACK_ROUTINE = extern fn();
pub const PBAD_MEMORY_CALLBACK_ROUTINE = ?&BAD_MEMORY_CALLBACK_ROUTINE;
pub extern fn RegisterBadMemoryNotification(Callback: PBAD_MEMORY_CALLBACK_ROUTINE) -> PVOID;
pub extern fn UnregisterBadMemoryNotification(RegistrationHandle: PVOID) -> BOOL;
pub extern fn QueueUserWorkItem(Function: LPTHREAD_START_ROUTINE, Context: PVOID, Flags: ULONG) -> BOOL;
pub extern fn UnregisterWaitEx(WaitHandle: HANDLE, CompletionEvent: HANDLE) -> BOOL;
pub extern fn CreateTimerQueue() -> HANDLE;
pub extern fn CreateTimerQueueTimer(phNewTimer: PHANDLE, TimerQueue: HANDLE, Callback: WAITORTIMERCALLBACK, Parameter: PVOID, DueTime: DWORD, Period: DWORD, Flags: ULONG) -> BOOL;
pub extern fn ChangeTimerQueueTimer(TimerQueue: HANDLE, Timer: HANDLE, DueTime: ULONG, Period: ULONG) -> BOOL;
pub extern fn DeleteTimerQueueTimer(TimerQueue: HANDLE, Timer: HANDLE, CompletionEvent: HANDLE) -> BOOL;
pub extern fn DeleteTimerQueueEx(TimerQueue: HANDLE, CompletionEvent: HANDLE) -> BOOL;
pub const PTP_WIN32_IO_CALLBACK = ?extern fn(PTP_CALLBACK_INSTANCE, PVOID, PVOID, ULONG, ULONG_PTR, PTP_IO);
pub extern fn CreateThreadpool(reserved: PVOID) -> PTP_POOL;
pub extern fn SetThreadpoolThreadMaximum(ptpp: PTP_POOL, cthrdMost: DWORD);
pub extern fn SetThreadpoolThreadMinimum(ptpp: PTP_POOL, cthrdMic: DWORD) -> BOOL;
pub extern fn SetThreadpoolStackInformation(ptpp: PTP_POOL, ptpsi: PTP_POOL_STACK_INFORMATION) -> BOOL;
pub extern fn QueryThreadpoolStackInformation(ptpp: PTP_POOL, ptpsi: PTP_POOL_STACK_INFORMATION) -> BOOL;
pub extern fn CloseThreadpool(ptpp: PTP_POOL);
pub extern fn CreateThreadpoolCleanupGroup() -> PTP_CLEANUP_GROUP;
pub extern fn CloseThreadpoolCleanupGroupMembers(ptpcg: PTP_CLEANUP_GROUP, fCancelPendingCallbacks: BOOL, pvCleanupContext: PVOID);
pub extern fn CloseThreadpoolCleanupGroup(ptpcg: PTP_CLEANUP_GROUP);
pub extern fn SetEventWhenCallbackReturns(pci: PTP_CALLBACK_INSTANCE, evt: HANDLE);
pub extern fn ReleaseSemaphoreWhenCallbackReturns(pci: PTP_CALLBACK_INSTANCE, sem: HANDLE, crel: DWORD);
pub extern fn ReleaseMutexWhenCallbackReturns(pci: PTP_CALLBACK_INSTANCE, mut: HANDLE);
pub extern fn LeaveCriticalSectionWhenCallbackReturns(pci: PTP_CALLBACK_INSTANCE, pcs: PCRITICAL_SECTION);
pub extern fn FreeLibraryWhenCallbackReturns(pci: PTP_CALLBACK_INSTANCE, mod: HMODULE);
pub extern fn CallbackMayRunLong(pci: PTP_CALLBACK_INSTANCE) -> BOOL;
pub extern fn DisassociateCurrentThreadFromCallback(pci: PTP_CALLBACK_INSTANCE);
pub extern fn TrySubmitThreadpoolCallback(pfns: PTP_SIMPLE_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON) -> BOOL;
pub extern fn CreateThreadpoolWork(pfnwk: PTP_WORK_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON) -> PTP_WORK;
pub extern fn SubmitThreadpoolWork(pwk: PTP_WORK);
pub extern fn WaitForThreadpoolWorkCallbacks(pwk: PTP_WORK, fCancelPendingCallbacks: BOOL);
pub extern fn CloseThreadpoolWork(pwk: PTP_WORK);
pub extern fn CreateThreadpoolTimer(pfnti: PTP_TIMER_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON) -> PTP_TIMER;
pub extern fn SetThreadpoolTimer(pti: PTP_TIMER, pftDueTime: PFILETIME, msPeriod: DWORD, msWindowLength: DWORD);
pub extern fn IsThreadpoolTimerSet(pti: PTP_TIMER) -> BOOL;
pub extern fn WaitForThreadpoolTimerCallbacks(pti: PTP_TIMER, fCancelPendingCallbacks: BOOL);
pub extern fn CloseThreadpoolTimer(pti: PTP_TIMER);
pub extern fn CreateThreadpoolWait(pfnwa: PTP_WAIT_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON) -> PTP_WAIT;
pub extern fn SetThreadpoolWait(pwa: PTP_WAIT, h: HANDLE, pftTimeout: PFILETIME);
pub extern fn WaitForThreadpoolWaitCallbacks(pwa: PTP_WAIT, fCancelPendingCallbacks: BOOL);
pub extern fn CloseThreadpoolWait(pwa: PTP_WAIT);
pub extern fn CreateThreadpoolIo(fl: HANDLE, pfnio: PTP_WIN32_IO_CALLBACK, pv: PVOID, pcbe: PTP_CALLBACK_ENVIRON) -> PTP_IO;
pub extern fn StartThreadpoolIo(pio: PTP_IO);
pub extern fn CancelThreadpoolIo(pio: PTP_IO);
pub extern fn WaitForThreadpoolIoCallbacks(pio: PTP_IO, fCancelPendingCallbacks: BOOL);
pub extern fn CloseThreadpoolIo(pio: PTP_IO);
pub extern fn SetThreadpoolTimerEx(pti: PTP_TIMER, pftDueTime: PFILETIME, msPeriod: DWORD, msWindowLength: DWORD) -> BOOL;
pub extern fn SetThreadpoolWaitEx(pwa: PTP_WAIT, h: HANDLE, pftTimeout: PFILETIME, Reserved: PVOID) -> BOOL;
pub const struct__CONTRACT_DESCRIPTION = @OpaqueType();
pub const CONTRACT_DESCRIPTION = struct__CONTRACT_DESCRIPTION;
pub const struct__BEM_REFERENCE = @OpaqueType();
pub const BEM_REFERENCE = struct__BEM_REFERENCE;
pub const BEM_FREE_INTERFACE_CALLBACK = ?extern fn(?&c_void);
pub extern fn BemCreateReference(iid: ?&const GUID, interfaceInstance: ?&c_void, freeCallback: BEM_FREE_INTERFACE_CALLBACK, reference: ?&(?&BEM_REFERENCE)) -> HRESULT;
pub extern fn BemCreateContractFrom(dllPath: LPCWSTR, extensionId: ?&const GUID, contractDescription: ?&const CONTRACT_DESCRIPTION, hostContract: ?&c_void, contract: ?&(?&c_void)) -> HRESULT;
pub extern fn BemCopyReference(reference: ?&BEM_REFERENCE, copiedReference: ?&(?&BEM_REFERENCE)) -> HRESULT;
pub extern fn BemFreeReference(reference: ?&BEM_REFERENCE);
pub extern fn BemFreeContract(contract: ?&c_void);
pub extern fn IsProcessInJob(ProcessHandle: HANDLE, JobHandle: HANDLE, Result: PBOOL) -> BOOL;
pub extern fn Wow64DisableWow64FsRedirection(OldValue: ?&PVOID) -> BOOL;
pub extern fn Wow64RevertWow64FsRedirection(OlValue: PVOID) -> BOOL;
pub extern fn IsWow64Process(hProcess: HANDLE, Wow64Process: PBOOL) -> BOOL;
pub const struct_tagENUMUILANG = extern struct {
NumOfEnumUILang: ULONG,
SizeOfEnumUIBuffer: ULONG,
pEnumUIBuffer: ?&LANGID,
};
pub const ENUMUILANG = struct_tagENUMUILANG;
pub const PENUMUILANG = ?&struct_tagENUMUILANG;
pub const ENUMRESLANGPROCA = ?extern fn(HMODULE, LPCSTR, LPCSTR, WORD, LONG_PTR) -> BOOL;
pub const ENUMRESLANGPROCW = ?extern fn(HMODULE, LPCWSTR, LPCWSTR, WORD, LONG_PTR) -> BOOL;
pub const ENUMRESNAMEPROCA = ?extern fn(HMODULE, LPCSTR, LPSTR, LONG_PTR) -> BOOL;
pub const ENUMRESNAMEPROCW = ?extern fn(HMODULE, LPCWSTR, LPWSTR, LONG_PTR) -> BOOL;
pub const ENUMRESTYPEPROCA = ?extern fn(HMODULE, LPSTR, LONG_PTR) -> BOOL;
pub const ENUMRESTYPEPROCW = ?extern fn(HMODULE, LPWSTR, LONG_PTR) -> BOOL;
pub extern fn DisableThreadLibraryCalls(hLibModule: HMODULE) -> BOOL;
pub extern fn FindResourceExW(hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, wLanguage: WORD) -> HRSRC;
pub extern fn FindStringOrdinal(dwFindStringOrdinalFlags: DWORD, lpStringSource: LPCWSTR, cchSource: c_int, lpStringValue: LPCWSTR, cchValue: c_int, bIgnoreCase: BOOL) -> c_int;
pub extern fn FreeLibrary(hLibModule: HMODULE) -> BOOL;
pub extern fn FreeLibraryAndExitThread(hLibModule: HMODULE, dwExitCode: DWORD) -> noreturn;
pub extern fn FreeResource(hResData: HGLOBAL) -> BOOL;
pub extern fn GetModuleFileNameA(hModule: HMODULE, lpFilename: LPSTR, nSize: DWORD) -> DWORD;
pub extern fn GetModuleFileNameW(hModule: HMODULE, lpFilename: LPWSTR, nSize: DWORD) -> DWORD;
pub extern fn GetModuleHandleA(lpModuleName: LPCSTR) -> HMODULE;
pub extern fn GetModuleHandleW(lpModuleName: LPCWSTR) -> HMODULE;
pub const PGET_MODULE_HANDLE_EXA = ?extern fn(DWORD, LPCSTR, ?&HMODULE) -> BOOL;
pub const PGET_MODULE_HANDLE_EXW = ?extern fn(DWORD, LPCWSTR, ?&HMODULE) -> BOOL;
pub extern fn GetModuleHandleExA(dwFlags: DWORD, lpModuleName: LPCSTR, phModule: ?&HMODULE) -> BOOL;
pub extern fn GetModuleHandleExW(dwFlags: DWORD, lpModuleName: LPCWSTR, phModule: ?&HMODULE) -> BOOL;
pub extern fn LoadLibraryExA(lpLibFileName: LPCSTR, hFile: HANDLE, dwFlags: DWORD) -> HMODULE;
pub extern fn LoadLibraryExW(lpLibFileName: LPCWSTR, hFile: HANDLE, dwFlags: DWORD) -> HMODULE;
pub extern fn LoadResource(hModule: HMODULE, hResInfo: HRSRC) -> HGLOBAL;
pub extern fn LoadStringA(hInstance: HINSTANCE, uID: UINT, lpBuffer: LPSTR, cchBufferMax: c_int) -> c_int;
pub extern fn LoadStringW(hInstance: HINSTANCE, uID: UINT, lpBuffer: LPWSTR, cchBufferMax: c_int) -> c_int;
pub extern fn LockResource(hResData: HGLOBAL) -> LPVOID;
pub extern fn SizeofResource(hModule: HMODULE, hResInfo: HRSRC) -> DWORD;
pub const DLL_DIRECTORY_COOKIE = PVOID;
pub const PDLL_DIRECTORY_COOKIE = ?&PVOID;
pub extern fn AddDllDirectory(NewDirectory: PCWSTR) -> DLL_DIRECTORY_COOKIE;
pub extern fn RemoveDllDirectory(Cookie: DLL_DIRECTORY_COOKIE) -> BOOL;
pub extern fn SetDefaultDllDirectories(DirectoryFlags: DWORD) -> BOOL;
pub extern fn EnumResourceLanguagesExA(hModule: HMODULE, lpType: LPCSTR, lpName: LPCSTR, lpEnumFunc: ENUMRESLANGPROCA, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID) -> BOOL;
pub extern fn EnumResourceLanguagesExW(hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, lpEnumFunc: ENUMRESLANGPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID) -> BOOL;
pub extern fn EnumResourceNamesExA(hModule: HMODULE, lpType: LPCSTR, lpEnumFunc: ENUMRESNAMEPROCA, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID) -> BOOL;
pub extern fn EnumResourceNamesExW(hModule: HMODULE, lpType: LPCWSTR, lpEnumFunc: ENUMRESNAMEPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID) -> BOOL;
pub extern fn EnumResourceTypesExA(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCA, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID) -> BOOL;
pub extern fn EnumResourceTypesExW(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCW, lParam: LONG_PTR, dwFlags: DWORD, LangId: LANGID) -> BOOL;
pub extern fn AccessCheck(pSecurityDescriptor: PSECURITY_DESCRIPTOR, ClientToken: HANDLE, DesiredAccess: DWORD, GenericMapping: PGENERIC_MAPPING, PrivilegeSet: PPRIVILEGE_SET, PrivilegeSetLength: LPDWORD, GrantedAccess: LPDWORD, AccessStatus: LPBOOL) -> BOOL;
pub extern fn AccessCheckAndAuditAlarmW(SubsystemName: LPCWSTR, HandleId: LPVOID, ObjectTypeName: LPWSTR, ObjectName: LPWSTR, SecurityDescriptor: PSECURITY_DESCRIPTOR, DesiredAccess: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: BOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL) -> BOOL;
pub extern fn AccessCheckByType(pSecurityDescriptor: PSECURITY_DESCRIPTOR, PrincipalSelfSid: PSID, ClientToken: HANDLE, DesiredAccess: DWORD, ObjectTypeList: POBJECT_TYPE_LIST, ObjectTypeListLength: DWORD, GenericMapping: PGENERIC_MAPPING, PrivilegeSet: PPRIVILEGE_SET, PrivilegeSetLength: LPDWORD, GrantedAccess: LPDWORD, AccessStatus: LPBOOL) -> BOOL;
pub extern fn AccessCheckByTypeResultList(pSecurityDescriptor: PSECURITY_DESCRIPTOR, PrincipalSelfSid: PSID, ClientToken: HANDLE, DesiredAccess: DWORD, ObjectTypeList: POBJECT_TYPE_LIST, ObjectTypeListLength: DWORD, GenericMapping: PGENERIC_MAPPING, PrivilegeSet: PPRIVILEGE_SET, PrivilegeSetLength: LPDWORD, GrantedAccessList: LPDWORD, AccessStatusList: LPDWORD) -> BOOL;
pub extern fn AccessCheckByTypeAndAuditAlarmW(SubsystemName: LPCWSTR, HandleId: LPVOID, ObjectTypeName: LPCWSTR, ObjectName: LPCWSTR, SecurityDescriptor: PSECURITY_DESCRIPTOR, PrincipalSelfSid: PSID, DesiredAccess: DWORD, AuditType: AUDIT_EVENT_TYPE, Flags: DWORD, ObjectTypeList: POBJECT_TYPE_LIST, ObjectTypeListLength: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: BOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL) -> BOOL;
pub extern fn AccessCheckByTypeResultListAndAuditAlarmW(SubsystemName: LPCWSTR, HandleId: LPVOID, ObjectTypeName: LPCWSTR, ObjectName: LPCWSTR, SecurityDescriptor: PSECURITY_DESCRIPTOR, PrincipalSelfSid: PSID, DesiredAccess: DWORD, AuditType: AUDIT_EVENT_TYPE, Flags: DWORD, ObjectTypeList: POBJECT_TYPE_LIST, ObjectTypeListLength: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: BOOL, GrantedAccessList: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL) -> BOOL;
pub extern fn AccessCheckByTypeResultListAndAuditAlarmByHandleW(SubsystemName: LPCWSTR, HandleId: LPVOID, ClientToken: HANDLE, ObjectTypeName: LPCWSTR, ObjectName: LPCWSTR, SecurityDescriptor: PSECURITY_DESCRIPTOR, PrincipalSelfSid: PSID, DesiredAccess: DWORD, AuditType: AUDIT_EVENT_TYPE, Flags: DWORD, ObjectTypeList: POBJECT_TYPE_LIST, ObjectTypeListLength: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: BOOL, GrantedAccessList: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL) -> BOOL;
pub extern fn AddAccessAllowedAce(pAcl: PACL, dwAceRevision: DWORD, AccessMask: DWORD, pSid: PSID) -> BOOL;
pub extern fn AddAccessAllowedAceEx(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID) -> BOOL;
pub extern fn AddAccessAllowedObjectAce(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, ObjectTypeGuid: ?&GUID, InheritedObjectTypeGuid: ?&GUID, pSid: PSID) -> BOOL;
pub extern fn AddAccessDeniedAce(pAcl: PACL, dwAceRevision: DWORD, AccessMask: DWORD, pSid: PSID) -> BOOL;
pub extern fn AddAccessDeniedAceEx(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID) -> BOOL;
pub extern fn AddAccessDeniedObjectAce(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, ObjectTypeGuid: ?&GUID, InheritedObjectTypeGuid: ?&GUID, pSid: PSID) -> BOOL;
pub extern fn AddAce(pAcl: PACL, dwAceRevision: DWORD, dwStartingAceIndex: DWORD, pAceList: LPVOID, nAceListLength: DWORD) -> BOOL;
pub extern fn AddAuditAccessAce(pAcl: PACL, dwAceRevision: DWORD, dwAccessMask: DWORD, pSid: PSID, bAuditSuccess: BOOL, bAuditFailure: BOOL) -> BOOL;
pub extern fn AddAuditAccessAceEx(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, dwAccessMask: DWORD, pSid: PSID, bAuditSuccess: BOOL, bAuditFailure: BOOL) -> BOOL;
pub extern fn AddAuditAccessObjectAce(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, ObjectTypeGuid: ?&GUID, InheritedObjectTypeGuid: ?&GUID, pSid: PSID, bAuditSuccess: BOOL, bAuditFailure: BOOL) -> BOOL;
pub extern fn AddMandatoryAce(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, MandatoryPolicy: DWORD, pLabelSid: PSID) -> BOOL;
pub extern fn AddResourceAttributeAce(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID, pAttributeInfo: PCLAIM_SECURITY_ATTRIBUTES_INFORMATION, pReturnLength: PDWORD) -> BOOL;
pub extern fn AddScopedPolicyIDAce(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AccessMask: DWORD, pSid: PSID) -> BOOL;
pub extern fn AdjustTokenGroups(TokenHandle: HANDLE, ResetToDefault: BOOL, NewState: PTOKEN_GROUPS, BufferLength: DWORD, PreviousState: PTOKEN_GROUPS, ReturnLength: PDWORD) -> BOOL;
pub extern fn AdjustTokenPrivileges(TokenHandle: HANDLE, DisableAllPrivileges: BOOL, NewState: PTOKEN_PRIVILEGES, BufferLength: DWORD, PreviousState: PTOKEN_PRIVILEGES, ReturnLength: PDWORD) -> BOOL;
pub extern fn AllocateAndInitializeSid(pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY, nSubAuthorityCount: BYTE, nSubAuthority0: DWORD, nSubAuthority1: DWORD, nSubAuthority2: DWORD, nSubAuthority3: DWORD, nSubAuthority4: DWORD, nSubAuthority5: DWORD, nSubAuthority6: DWORD, nSubAuthority7: DWORD, pSid: ?&PSID) -> BOOL;
pub extern fn AllocateLocallyUniqueId(Luid: PLUID) -> BOOL;
pub extern fn AreAllAccessesGranted(GrantedAccess: DWORD, DesiredAccess: DWORD) -> BOOL;
pub extern fn AreAnyAccessesGranted(GrantedAccess: DWORD, DesiredAccess: DWORD) -> BOOL;
pub extern fn CheckTokenMembership(TokenHandle: HANDLE, SidToCheck: PSID, IsMember: PBOOL) -> BOOL;
pub extern fn CheckTokenCapability(TokenHandle: HANDLE, CapabilitySidToCheck: PSID, HasCapability: PBOOL) -> BOOL;
pub extern fn GetAppContainerAce(Acl: PACL, StartingAceIndex: DWORD, AppContainerAce: ?&PVOID, AppContainerAceIndex: ?&DWORD) -> BOOL;
pub extern fn CheckTokenMembershipEx(TokenHandle: HANDLE, SidToCheck: PSID, Flags: DWORD, IsMember: PBOOL) -> BOOL;
pub extern fn ConvertToAutoInheritPrivateObjectSecurity(ParentDescriptor: PSECURITY_DESCRIPTOR, CurrentSecurityDescriptor: PSECURITY_DESCRIPTOR, NewSecurityDescriptor: ?&PSECURITY_DESCRIPTOR, ObjectType: ?&GUID, IsDirectoryObject: BOOLEAN, GenericMapping: PGENERIC_MAPPING) -> BOOL;
pub extern fn CopySid(nDestinationSidLength: DWORD, pDestinationSid: PSID, pSourceSid: PSID) -> BOOL;
pub extern fn CreatePrivateObjectSecurity(ParentDescriptor: PSECURITY_DESCRIPTOR, CreatorDescriptor: PSECURITY_DESCRIPTOR, NewDescriptor: ?&PSECURITY_DESCRIPTOR, IsDirectoryObject: BOOL, Token: HANDLE, GenericMapping: PGENERIC_MAPPING) -> BOOL;
pub extern fn CreatePrivateObjectSecurityEx(ParentDescriptor: PSECURITY_DESCRIPTOR, CreatorDescriptor: PSECURITY_DESCRIPTOR, NewDescriptor: ?&PSECURITY_DESCRIPTOR, ObjectType: ?&GUID, IsContainerObject: BOOL, AutoInheritFlags: ULONG, Token: HANDLE, GenericMapping: PGENERIC_MAPPING) -> BOOL;
pub extern fn CreatePrivateObjectSecurityWithMultipleInheritance(ParentDescriptor: PSECURITY_DESCRIPTOR, CreatorDescriptor: PSECURITY_DESCRIPTOR, NewDescriptor: ?&PSECURITY_DESCRIPTOR, ObjectTypes: ?&(?&GUID), GuidCount: ULONG, IsContainerObject: BOOL, AutoInheritFlags: ULONG, Token: HANDLE, GenericMapping: PGENERIC_MAPPING) -> BOOL;
pub extern fn CreateRestrictedToken(ExistingTokenHandle: HANDLE, Flags: DWORD, DisableSidCount: DWORD, SidsToDisable: PSID_AND_ATTRIBUTES, DeletePrivilegeCount: DWORD, PrivilegesToDelete: PLUID_AND_ATTRIBUTES, RestrictedSidCount: DWORD, SidsToRestrict: PSID_AND_ATTRIBUTES, NewTokenHandle: PHANDLE) -> BOOL;
pub extern fn CreateWellKnownSid(WellKnownSidType: WELL_KNOWN_SID_TYPE, DomainSid: PSID, pSid: PSID, cbSid: ?&DWORD) -> BOOL;
pub extern fn EqualDomainSid(pSid1: PSID, pSid2: PSID, pfEqual: ?&BOOL) -> BOOL;
pub extern fn DeleteAce(pAcl: PACL, dwAceIndex: DWORD) -> BOOL;
pub extern fn DestroyPrivateObjectSecurity(ObjectDescriptor: ?&PSECURITY_DESCRIPTOR) -> BOOL;
pub extern fn DuplicateToken(ExistingTokenHandle: HANDLE, ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, DuplicateTokenHandle: PHANDLE) -> BOOL;
pub extern fn DuplicateTokenEx(hExistingToken: HANDLE, dwDesiredAccess: DWORD, lpTokenAttributes: LPSECURITY_ATTRIBUTES, ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL, TokenType: TOKEN_TYPE, phNewToken: PHANDLE) -> BOOL;
pub extern fn EqualPrefixSid(pSid1: PSID, pSid2: PSID) -> BOOL;
pub extern fn EqualSid(pSid1: PSID, pSid2: PSID) -> BOOL;
pub extern fn FindFirstFreeAce(pAcl: PACL, pAce: ?&LPVOID) -> BOOL;
pub extern fn FreeSid(pSid: PSID) -> PVOID;
pub extern fn GetAce(pAcl: PACL, dwAceIndex: DWORD, pAce: ?&LPVOID) -> BOOL;
pub extern fn GetAclInformation(pAcl: PACL, pAclInformation: LPVOID, nAclInformationLength: DWORD, dwAclInformationClass: ACL_INFORMATION_CLASS) -> BOOL;
pub extern fn GetFileSecurityW(lpFileName: LPCWSTR, RequestedInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD) -> BOOL;
pub extern fn GetKernelObjectSecurity(Handle: HANDLE, RequestedInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD) -> BOOL;
pub extern fn GetLengthSid(pSid: PSID) -> DWORD;
pub extern fn GetPrivateObjectSecurity(ObjectDescriptor: PSECURITY_DESCRIPTOR, SecurityInformation: SECURITY_INFORMATION, ResultantDescriptor: PSECURITY_DESCRIPTOR, DescriptorLength: DWORD, ReturnLength: PDWORD) -> BOOL;
pub extern fn GetSecurityDescriptorControl(pSecurityDescriptor: PSECURITY_DESCRIPTOR, pControl: PSECURITY_DESCRIPTOR_CONTROL, lpdwRevision: LPDWORD) -> BOOL;
pub extern fn GetSecurityDescriptorDacl(pSecurityDescriptor: PSECURITY_DESCRIPTOR, lpbDaclPresent: LPBOOL, pDacl: ?&PACL, lpbDaclDefaulted: LPBOOL) -> BOOL;
pub extern fn GetSecurityDescriptorGroup(pSecurityDescriptor: PSECURITY_DESCRIPTOR, pGroup: ?&PSID, lpbGroupDefaulted: LPBOOL) -> BOOL;
pub extern fn GetSecurityDescriptorLength(pSecurityDescriptor: PSECURITY_DESCRIPTOR) -> DWORD;
pub extern fn GetSecurityDescriptorOwner(pSecurityDescriptor: PSECURITY_DESCRIPTOR, pOwner: ?&PSID, lpbOwnerDefaulted: LPBOOL) -> BOOL;
pub extern fn GetSecurityDescriptorRMControl(SecurityDescriptor: PSECURITY_DESCRIPTOR, RMControl: PUCHAR) -> DWORD;
pub extern fn GetSecurityDescriptorSacl(pSecurityDescriptor: PSECURITY_DESCRIPTOR, lpbSaclPresent: LPBOOL, pSacl: ?&PACL, lpbSaclDefaulted: LPBOOL) -> BOOL;
pub extern fn GetSidIdentifierAuthority(pSid: PSID) -> PSID_IDENTIFIER_AUTHORITY;
pub extern fn GetSidLengthRequired(nSubAuthorityCount: UCHAR) -> DWORD;
pub extern fn GetSidSubAuthority(pSid: PSID, nSubAuthority: DWORD) -> PDWORD;
pub extern fn GetSidSubAuthorityCount(pSid: PSID) -> PUCHAR;
pub extern fn GetTokenInformation(TokenHandle: HANDLE, TokenInformationClass: TOKEN_INFORMATION_CLASS, TokenInformation: LPVOID, TokenInformationLength: DWORD, ReturnLength: PDWORD) -> BOOL;
pub extern fn GetWindowsAccountDomainSid(pSid: PSID, pDomainSid: PSID, cbDomainSid: ?&DWORD) -> BOOL;
pub extern fn ImpersonateAnonymousToken(ThreadHandle: HANDLE) -> BOOL;
pub extern fn ImpersonateLoggedOnUser(hToken: HANDLE) -> BOOL;
pub extern fn ImpersonateSelf(ImpersonationLevel: SECURITY_IMPERSONATION_LEVEL) -> BOOL;
pub extern fn InitializeAcl(pAcl: PACL, nAclLength: DWORD, dwAclRevision: DWORD) -> BOOL;
pub extern fn InitializeSecurityDescriptor(pSecurityDescriptor: PSECURITY_DESCRIPTOR, dwRevision: DWORD) -> BOOL;
pub extern fn InitializeSid(Sid: PSID, pIdentifierAuthority: PSID_IDENTIFIER_AUTHORITY, nSubAuthorityCount: BYTE) -> BOOL;
pub extern fn IsTokenRestricted(TokenHandle: HANDLE) -> BOOL;
pub extern fn IsValidAcl(pAcl: PACL) -> BOOL;
pub extern fn IsValidSecurityDescriptor(pSecurityDescriptor: PSECURITY_DESCRIPTOR) -> BOOL;
pub extern fn IsValidSid(pSid: PSID) -> BOOL;
pub extern fn IsWellKnownSid(pSid: PSID, WellKnownSidType: WELL_KNOWN_SID_TYPE) -> BOOL;
pub extern fn MakeAbsoluteSD(pSelfRelativeSecurityDescriptor: PSECURITY_DESCRIPTOR, pAbsoluteSecurityDescriptor: PSECURITY_DESCRIPTOR, lpdwAbsoluteSecurityDescriptorSize: LPDWORD, pDacl: PACL, lpdwDaclSize: LPDWORD, pSacl: PACL, lpdwSaclSize: LPDWORD, pOwner: PSID, lpdwOwnerSize: LPDWORD, pPrimaryGroup: PSID, lpdwPrimaryGroupSize: LPDWORD) -> BOOL;
pub extern fn MakeSelfRelativeSD(pAbsoluteSecurityDescriptor: PSECURITY_DESCRIPTOR, pSelfRelativeSecurityDescriptor: PSECURITY_DESCRIPTOR, lpdwBufferLength: LPDWORD) -> BOOL;
pub extern fn MapGenericMask(AccessMask: PDWORD, GenericMapping: PGENERIC_MAPPING);
pub extern fn ObjectCloseAuditAlarmW(SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: BOOL) -> BOOL;
pub extern fn ObjectDeleteAuditAlarmW(SubsystemName: LPCWSTR, HandleId: LPVOID, GenerateOnClose: BOOL) -> BOOL;
pub extern fn ObjectOpenAuditAlarmW(SubsystemName: LPCWSTR, HandleId: LPVOID, ObjectTypeName: LPWSTR, ObjectName: LPWSTR, pSecurityDescriptor: PSECURITY_DESCRIPTOR, ClientToken: HANDLE, DesiredAccess: DWORD, GrantedAccess: DWORD, Privileges: PPRIVILEGE_SET, ObjectCreation: BOOL, AccessGranted: BOOL, GenerateOnClose: LPBOOL) -> BOOL;
pub extern fn ObjectPrivilegeAuditAlarmW(SubsystemName: LPCWSTR, HandleId: LPVOID, ClientToken: HANDLE, DesiredAccess: DWORD, Privileges: PPRIVILEGE_SET, AccessGranted: BOOL) -> BOOL;
pub extern fn PrivilegeCheck(ClientToken: HANDLE, RequiredPrivileges: PPRIVILEGE_SET, pfResult: LPBOOL) -> BOOL;
pub extern fn PrivilegedServiceAuditAlarmW(SubsystemName: LPCWSTR, ServiceName: LPCWSTR, ClientToken: HANDLE, Privileges: PPRIVILEGE_SET, AccessGranted: BOOL) -> BOOL;
pub extern fn QuerySecurityAccessMask(SecurityInformation: SECURITY_INFORMATION, DesiredAccess: LPDWORD);
pub extern fn RevertToSelf() -> BOOL;
pub extern fn SetAclInformation(pAcl: PACL, pAclInformation: LPVOID, nAclInformationLength: DWORD, dwAclInformationClass: ACL_INFORMATION_CLASS) -> BOOL;
pub extern fn SetFileSecurityW(lpFileName: LPCWSTR, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR) -> BOOL;
pub extern fn SetKernelObjectSecurity(Handle: HANDLE, SecurityInformation: SECURITY_INFORMATION, SecurityDescriptor: PSECURITY_DESCRIPTOR) -> BOOL;
pub extern fn SetPrivateObjectSecurity(SecurityInformation: SECURITY_INFORMATION, ModificationDescriptor: PSECURITY_DESCRIPTOR, ObjectsSecurityDescriptor: ?&PSECURITY_DESCRIPTOR, GenericMapping: PGENERIC_MAPPING, Token: HANDLE) -> BOOL;
pub extern fn SetPrivateObjectSecurityEx(SecurityInformation: SECURITY_INFORMATION, ModificationDescriptor: PSECURITY_DESCRIPTOR, ObjectsSecurityDescriptor: ?&PSECURITY_DESCRIPTOR, AutoInheritFlags: ULONG, GenericMapping: PGENERIC_MAPPING, Token: HANDLE) -> BOOL;
pub extern fn SetSecurityAccessMask(SecurityInformation: SECURITY_INFORMATION, DesiredAccess: LPDWORD);
pub extern fn SetSecurityDescriptorControl(pSecurityDescriptor: PSECURITY_DESCRIPTOR, ControlBitsOfInterest: SECURITY_DESCRIPTOR_CONTROL, ControlBitsToSet: SECURITY_DESCRIPTOR_CONTROL) -> BOOL;
pub extern fn SetSecurityDescriptorDacl(pSecurityDescriptor: PSECURITY_DESCRIPTOR, bDaclPresent: BOOL, pDacl: PACL, bDaclDefaulted: BOOL) -> BOOL;
pub extern fn SetSecurityDescriptorGroup(pSecurityDescriptor: PSECURITY_DESCRIPTOR, pGroup: PSID, bGroupDefaulted: BOOL) -> BOOL;
pub extern fn SetSecurityDescriptorOwner(pSecurityDescriptor: PSECURITY_DESCRIPTOR, pOwner: PSID, bOwnerDefaulted: BOOL) -> BOOL;
pub extern fn SetSecurityDescriptorRMControl(SecurityDescriptor: PSECURITY_DESCRIPTOR, RMControl: PUCHAR) -> DWORD;
pub extern fn SetSecurityDescriptorSacl(pSecurityDescriptor: PSECURITY_DESCRIPTOR, bSaclPresent: BOOL, pSacl: PACL, bSaclDefaulted: BOOL) -> BOOL;
pub extern fn SetTokenInformation(TokenHandle: HANDLE, TokenInformationClass: TOKEN_INFORMATION_CLASS, TokenInformation: LPVOID, TokenInformationLength: DWORD) -> BOOL;
pub extern fn SetCachedSigningLevel(SourceFiles: PHANDLE, SourceFileCount: ULONG, Flags: ULONG, TargetFile: HANDLE) -> BOOL;
pub extern fn GetCachedSigningLevel(File: HANDLE, Flags: PULONG, SigningLevel: PULONG, Thumbprint: PUCHAR, ThumbprintSize: PULONG, ThumbprintAlgorithm: PULONG) -> BOOL;
pub extern fn CreatePrivateNamespaceW(lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES, lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCWSTR) -> HANDLE;
pub extern fn OpenPrivateNamespaceW(lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCWSTR) -> HANDLE;
pub extern fn ClosePrivateNamespace(Handle: HANDLE, Flags: ULONG) -> BOOLEAN;
pub extern fn CreateBoundaryDescriptorW(Name: LPCWSTR, Flags: ULONG) -> HANDLE;
pub extern fn AddSIDToBoundaryDescriptor(BoundaryDescriptor: ?&HANDLE, RequiredSid: PSID) -> BOOL;
pub extern fn DeleteBoundaryDescriptor(BoundaryDescriptor: HANDLE);
pub extern fn GetNumaHighestNodeNumber(HighestNodeNumber: PULONG) -> BOOL;
pub extern fn GetNumaNodeProcessorMaskEx(Node: USHORT, ProcessorMask: PGROUP_AFFINITY) -> BOOL;
pub extern fn GetProcessGroupAffinity(hProcess: HANDLE, GroupCount: PUSHORT, GroupArray: PUSHORT) -> BOOL;
pub extern fn GetThreadGroupAffinity(hThread: HANDLE, GroupAffinity: PGROUP_AFFINITY) -> BOOL;
pub extern fn SetThreadGroupAffinity(hThread: HANDLE, GroupAffinity: ?&const GROUP_AFFINITY, PreviousGroupAffinity: PGROUP_AFFINITY) -> BOOL;
pub extern fn GetAppContainerNamedObjectPath(Token: HANDLE, AppContainerSid: PSID, ObjectPathLength: ULONG, ObjectPath: LPWSTR, ReturnLength: PULONG) -> BOOL;
pub extern fn QueryThreadCycleTime(ThreadHandle: HANDLE, CycleTime: PULONG64) -> BOOL;
pub extern fn QueryProcessCycleTime(ProcessHandle: HANDLE, CycleTime: PULONG64) -> BOOL;
pub extern fn QueryIdleProcessorCycleTime(BufferLength: PULONG, ProcessorIdleCycleTime: PULONG64) -> BOOL;
pub extern fn QueryIdleProcessorCycleTimeEx(Group: USHORT, BufferLength: PULONG, ProcessorIdleCycleTime: PULONG64) -> BOOL;
pub extern fn QueryUnbiasedInterruptTime(UnbiasedTime: PULONGLONG) -> BOOL;
pub const PFIBER_START_ROUTINE = ?extern fn(LPVOID);
pub const LPFIBER_START_ROUTINE = PFIBER_START_ROUTINE;
pub const PFIBER_CALLOUT_ROUTINE = ?extern fn(LPVOID) -> LPVOID;
pub const LPLDT_ENTRY = LPVOID;
pub const struct__COMMPROP = extern struct {
wPacketLength: WORD,
wPacketVersion: WORD,
dwServiceMask: DWORD,
dwReserved1: DWORD,
dwMaxTxQueue: DWORD,
dwMaxRxQueue: DWORD,
dwMaxBaud: DWORD,
dwProvSubType: DWORD,
dwProvCapabilities: DWORD,
dwSettableParams: DWORD,
dwSettableBaud: DWORD,
wSettableData: WORD,
wSettableStopParity: WORD,
dwCurrentTxQueue: DWORD,
dwCurrentRxQueue: DWORD,
dwProvSpec1: DWORD,
dwProvSpec2: DWORD,
wcProvChar: [1]WCHAR,
};
pub const COMMPROP = struct__COMMPROP;
pub const LPCOMMPROP = ?&struct__COMMPROP;
pub const struct__COMSTAT = @OpaqueType();
pub const COMSTAT = struct__COMSTAT;
pub const LPCOMSTAT = ?&struct__COMSTAT;
pub const struct__DCB = @OpaqueType();
pub const DCB = struct__DCB;
pub const LPDCB = ?&struct__DCB;
pub const struct__COMMTIMEOUTS = extern struct {
ReadIntervalTimeout: DWORD,
ReadTotalTimeoutMultiplier: DWORD,
ReadTotalTimeoutConstant: DWORD,
WriteTotalTimeoutMultiplier: DWORD,
WriteTotalTimeoutConstant: DWORD,
};
pub const COMMTIMEOUTS = struct__COMMTIMEOUTS;
pub const LPCOMMTIMEOUTS = ?&struct__COMMTIMEOUTS;
pub const struct__COMMCONFIG = extern struct {
dwSize: DWORD,
wVersion: WORD,
wReserved: WORD,
dcb: DCB,
dwProviderSubType: DWORD,
dwProviderOffset: DWORD,
dwProviderSize: DWORD,
wcProviderData: [1]WCHAR,
};
pub const COMMCONFIG = struct__COMMCONFIG;
pub const LPCOMMCONFIG = ?&struct__COMMCONFIG;
pub const struct__MEMORYSTATUS = extern struct {
dwLength: DWORD,
dwMemoryLoad: DWORD,
dwTotalPhys: SIZE_T,
dwAvailPhys: SIZE_T,
dwTotalPageFile: SIZE_T,
dwAvailPageFile: SIZE_T,
dwTotalVirtual: SIZE_T,
dwAvailVirtual: SIZE_T,
};
pub const MEMORYSTATUS = struct__MEMORYSTATUS;
pub const LPMEMORYSTATUS = ?&struct__MEMORYSTATUS;
pub const struct__JIT_DEBUG_INFO = extern struct {
dwSize: DWORD,
dwProcessorArchitecture: DWORD,
dwThreadID: DWORD,
dwReserved0: DWORD,
lpExceptionAddress: ULONG64,
lpExceptionRecord: ULONG64,
lpContextRecord: ULONG64,
};
pub const JIT_DEBUG_INFO = struct__JIT_DEBUG_INFO;
pub const LPJIT_DEBUG_INFO = ?&struct__JIT_DEBUG_INFO;
pub const JIT_DEBUG_INFO32 = JIT_DEBUG_INFO;
pub const LPJIT_DEBUG_INFO32 = ?&JIT_DEBUG_INFO;
pub const JIT_DEBUG_INFO64 = JIT_DEBUG_INFO;
pub const LPJIT_DEBUG_INFO64 = ?&JIT_DEBUG_INFO;
pub const LPEXCEPTION_RECORD = PEXCEPTION_RECORD;
pub const LPEXCEPTION_POINTERS = PEXCEPTION_POINTERS;
pub const struct__OFSTRUCT = extern struct {
cBytes: BYTE,
fFixedDisk: BYTE,
nErrCode: WORD,
Reserved1: WORD,
Reserved2: WORD,
szPathName: [128]CHAR,
};
pub const OFSTRUCT = struct__OFSTRUCT;
pub const LPOFSTRUCT = ?&struct__OFSTRUCT;
pub const POFSTRUCT = ?&struct__OFSTRUCT;
pub extern fn WinMain(hInstance: HINSTANCE, hPrevInstance: HINSTANCE, lpCmdLine: LPSTR, nShowCmd: c_int) -> c_int;
pub extern fn wWinMain(hInstance: HINSTANCE, hPrevInstance: HINSTANCE, lpCmdLine: LPWSTR, nShowCmd: c_int) -> c_int;
pub extern fn GlobalAlloc(uFlags: UINT, dwBytes: SIZE_T) -> HGLOBAL;
pub extern fn GlobalReAlloc(hMem: HGLOBAL, dwBytes: SIZE_T, uFlags: UINT) -> HGLOBAL;
pub extern fn GlobalSize(hMem: HGLOBAL) -> SIZE_T;
pub extern fn GlobalFlags(hMem: HGLOBAL) -> UINT;
pub extern fn GlobalLock(hMem: HGLOBAL) -> LPVOID;
pub extern fn GlobalHandle(pMem: LPCVOID) -> HGLOBAL;
pub extern fn GlobalUnlock(hMem: HGLOBAL) -> BOOL;
pub extern fn GlobalFree(hMem: HGLOBAL) -> HGLOBAL;
pub extern fn GlobalCompact(dwMinFree: DWORD) -> SIZE_T;
pub extern fn GlobalFix(hMem: HGLOBAL);
pub extern fn GlobalUnfix(hMem: HGLOBAL);
pub extern fn GlobalWire(hMem: HGLOBAL) -> LPVOID;
pub extern fn GlobalUnWire(hMem: HGLOBAL) -> BOOL;
pub extern fn GlobalMemoryStatus(lpBuffer: LPMEMORYSTATUS);
pub extern fn LocalAlloc(uFlags: UINT, uBytes: SIZE_T) -> HLOCAL;
pub extern fn LocalReAlloc(hMem: HLOCAL, uBytes: SIZE_T, uFlags: UINT) -> HLOCAL;
pub extern fn LocalLock(hMem: HLOCAL) -> LPVOID;
pub extern fn LocalHandle(pMem: LPCVOID) -> HLOCAL;
pub extern fn LocalUnlock(hMem: HLOCAL) -> BOOL;
pub extern fn LocalSize(hMem: HLOCAL) -> SIZE_T;
pub extern fn LocalFlags(hMem: HLOCAL) -> UINT;
pub extern fn LocalFree(hMem: HLOCAL) -> HLOCAL;
pub extern fn LocalShrink(hMem: HLOCAL, cbNewSize: UINT) -> SIZE_T;
pub extern fn LocalCompact(uMinFree: UINT) -> SIZE_T;
pub extern fn GetProcessorSystemCycleTime(Group: USHORT, Buffer: PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION, ReturnedLength: PDWORD) -> BOOL;
pub extern fn GetBinaryTypeA(lpApplicationName: LPCSTR, lpBinaryType: LPDWORD) -> BOOL;
pub extern fn GetBinaryTypeW(lpApplicationName: LPCWSTR, lpBinaryType: LPDWORD) -> BOOL;
pub extern fn GetShortPathNameA(lpszLongPath: LPCSTR, lpszShortPath: LPSTR, cchBuffer: DWORD) -> DWORD;
pub extern fn GetLongPathNameTransactedA(lpszShortPath: LPCSTR, lpszLongPath: LPSTR, cchBuffer: DWORD, hTransaction: HANDLE) -> DWORD;
pub extern fn GetLongPathNameTransactedW(lpszShortPath: LPCWSTR, lpszLongPath: LPWSTR, cchBuffer: DWORD, hTransaction: HANDLE) -> DWORD;
pub extern fn GetProcessAffinityMask(hProcess: HANDLE, lpProcessAffinityMask: PDWORD_PTR, lpSystemAffinityMask: PDWORD_PTR) -> BOOL;
pub extern fn SetProcessAffinityMask(hProcess: HANDLE, dwProcessAffinityMask: DWORD_PTR) -> BOOL;
pub extern fn GetProcessIoCounters(hProcess: HANDLE, lpIoCounters: PIO_COUNTERS) -> BOOL;
pub extern fn GetProcessWorkingSetSize(hProcess: HANDLE, lpMinimumWorkingSetSize: PSIZE_T, lpMaximumWorkingSetSize: PSIZE_T) -> BOOL;
pub extern fn SetProcessWorkingSetSize(hProcess: HANDLE, dwMinimumWorkingSetSize: SIZE_T, dwMaximumWorkingSetSize: SIZE_T) -> BOOL;
pub extern fn FatalExit(ExitCode: c_int);
pub extern fn SetEnvironmentStringsA(NewEnvironment: LPCH) -> BOOL;
pub extern fn RaiseFailFastException(pExceptionRecord: PEXCEPTION_RECORD, pContextRecord: PCONTEXT, dwFlags: DWORD);
pub extern fn SwitchToFiber(lpFiber: LPVOID);
pub extern fn DeleteFiber(lpFiber: LPVOID);
pub extern fn ConvertFiberToThread() -> BOOL;
pub extern fn CalloutOnFiberStack(lpFiber: PVOID, lpStartAddress: PFIBER_CALLOUT_ROUTINE, lpParameter: PVOID) -> PVOID;
pub extern fn CreateFiberEx(dwStackCommitSize: SIZE_T, dwStackReserveSize: SIZE_T, dwFlags: DWORD, lpStartAddress: LPFIBER_START_ROUTINE, lpParameter: LPVOID) -> LPVOID;
pub extern fn ConvertThreadToFiberEx(lpParameter: LPVOID, dwFlags: DWORD) -> LPVOID;
pub extern fn CreateFiber(dwStackSize: SIZE_T, lpStartAddress: LPFIBER_START_ROUTINE, lpParameter: LPVOID) -> LPVOID;
pub extern fn ConvertThreadToFiber(lpParameter: LPVOID) -> LPVOID;
pub const PUMS_CONTEXT = ?&c_void;
pub const PUMS_COMPLETION_LIST = ?&c_void;
pub const UmsThreadInvalidInfoClass: c_int = 0;
pub const UmsThreadUserContext: c_int = 1;
pub const UmsThreadPriority: c_int = 2;
pub const UmsThreadAffinity: c_int = 3;
pub const UmsThreadTeb: c_int = 4;
pub const UmsThreadIsSuspended: c_int = 5;
pub const UmsThreadIsTerminated: c_int = 6;
pub const UmsThreadMaxInfoClass: c_int = 7;
pub const enum__RTL_UMS_THREAD_INFO_CLASS = c_int;
pub const UMS_THREAD_INFO_CLASS = enum__RTL_UMS_THREAD_INFO_CLASS;
pub const UmsThreadInvalidInfoClass: c_int = 0;
pub const UmsThreadUserContext: c_int = 1;
pub const UmsThreadPriority: c_int = 2;
pub const UmsThreadAffinity: c_int = 3;
pub const UmsThreadTeb: c_int = 4;
pub const UmsThreadIsSuspended: c_int = 5;
pub const UmsThreadIsTerminated: c_int = 6;
pub const UmsThreadMaxInfoClass: c_int = 7;
pub const enum__RTL_UMS_THREAD_INFO_CLASS = c_int;
pub const PUMS_THREAD_INFO_CLASS = ?&enum__RTL_UMS_THREAD_INFO_CLASS;
pub const UmsSchedulerStartup: c_int = 0;
pub const UmsSchedulerThreadBlocked: c_int = 1;
pub const UmsSchedulerThreadYield: c_int = 2;
pub const enum__RTL_UMS_SCHEDULER_REASON = c_int;
pub const UMS_SCHEDULER_REASON = enum__RTL_UMS_SCHEDULER_REASON;
pub const PUMS_SCHEDULER_ENTRY_POINT = PRTL_UMS_SCHEDULER_ENTRY_POINT;
pub const struct__UMS_SCHEDULER_STARTUP_INFO = extern struct {
UmsVersion: ULONG,
CompletionList: PUMS_COMPLETION_LIST,
SchedulerProc: PUMS_SCHEDULER_ENTRY_POINT,
SchedulerParam: PVOID,
};
pub const UMS_SCHEDULER_STARTUP_INFO = struct__UMS_SCHEDULER_STARTUP_INFO;
pub const PUMS_SCHEDULER_STARTUP_INFO = ?&struct__UMS_SCHEDULER_STARTUP_INFO;
pub const struct__UMS_SYSTEM_THREAD_INFORMATION = @OpaqueType();
pub const UMS_SYSTEM_THREAD_INFORMATION = struct__UMS_SYSTEM_THREAD_INFORMATION;
pub const PUMS_SYSTEM_THREAD_INFORMATION = ?&struct__UMS_SYSTEM_THREAD_INFORMATION;
pub extern fn CreateUmsCompletionList(UmsCompletionList: ?&PUMS_COMPLETION_LIST) -> BOOL;
pub extern fn DequeueUmsCompletionListItems(UmsCompletionList: PUMS_COMPLETION_LIST, WaitTimeOut: DWORD, UmsThreadList: ?&PUMS_CONTEXT) -> BOOL;
pub extern fn GetUmsCompletionListEvent(UmsCompletionList: PUMS_COMPLETION_LIST, UmsCompletionEvent: PHANDLE) -> BOOL;
pub extern fn ExecuteUmsThread(UmsThread: PUMS_CONTEXT) -> BOOL;
pub extern fn UmsThreadYield(SchedulerParam: PVOID) -> BOOL;
pub extern fn DeleteUmsCompletionList(UmsCompletionList: PUMS_COMPLETION_LIST) -> BOOL;
pub extern fn GetCurrentUmsThread() -> PUMS_CONTEXT;
pub extern fn GetNextUmsListItem(UmsContext: PUMS_CONTEXT) -> PUMS_CONTEXT;
pub extern fn QueryUmsThreadInformation(UmsThread: PUMS_CONTEXT, UmsThreadInfoClass: UMS_THREAD_INFO_CLASS, UmsThreadInformation: PVOID, UmsThreadInformationLength: ULONG, ReturnLength: PULONG) -> BOOL;
pub extern fn SetUmsThreadInformation(UmsThread: PUMS_CONTEXT, UmsThreadInfoClass: UMS_THREAD_INFO_CLASS, UmsThreadInformation: PVOID, UmsThreadInformationLength: ULONG) -> BOOL;
pub extern fn DeleteUmsThreadContext(UmsThread: PUMS_CONTEXT) -> BOOL;
pub extern fn CreateUmsThreadContext(lpUmsThread: ?&PUMS_CONTEXT) -> BOOL;
pub extern fn EnterUmsSchedulingMode(SchedulerStartupInfo: PUMS_SCHEDULER_STARTUP_INFO) -> BOOL;
pub extern fn GetUmsSystemThreadInformation(ThreadHandle: HANDLE, SystemThreadInfo: PUMS_SYSTEM_THREAD_INFORMATION) -> BOOL;
pub extern fn SetThreadAffinityMask(hThread: HANDLE, dwThreadAffinityMask: DWORD_PTR) -> DWORD_PTR;
pub extern fn SetThreadIdealProcessor(hThread: HANDLE, dwIdealProcessor: DWORD) -> DWORD;
pub const ProcessMemoryPriority = enum__PROCESS_INFORMATION_CLASS.ProcessMemoryPriority;
pub const ProcessInformationClassMax = enum__PROCESS_INFORMATION_CLASS.ProcessInformationClassMax;
pub const enum__PROCESS_INFORMATION_CLASS = extern enum {
ProcessMemoryPriority,
ProcessInformationClassMax,
};
pub const PROCESS_INFORMATION_CLASS = enum__PROCESS_INFORMATION_CLASS;
pub extern fn GetProcessInformation(hProcess: HANDLE, ProcessInformationClass: PROCESS_INFORMATION_CLASS, ProcessInformation: LPVOID, ProcessInformationSize: DWORD) -> BOOL;
pub extern fn SetProcessInformation(hProcess: HANDLE, ProcessInformationClass: PROCESS_INFORMATION_CLASS, ProcessInformation: LPVOID, ProcessInformationSize: DWORD) -> BOOL;
pub extern fn SetProcessDEPPolicy(dwFlags: DWORD) -> BOOL;
pub extern fn GetProcessDEPPolicy(hProcess: HANDLE, lpFlags: LPDWORD, lpPermanent: PBOOL) -> BOOL;
pub extern fn RequestWakeupLatency(latency: LATENCY_TIME) -> BOOL;
pub extern fn IsSystemResumeAutomatic() -> BOOL;
pub extern fn GetThreadSelectorEntry(hThread: HANDLE, dwSelector: DWORD, lpSelectorEntry: LPLDT_ENTRY) -> BOOL;
pub extern fn SetThreadExecutionState(esFlags: EXECUTION_STATE) -> EXECUTION_STATE;
pub const POWER_REQUEST_CONTEXT = REASON_CONTEXT;
pub const PPOWER_REQUEST_CONTEXT = ?&REASON_CONTEXT;
pub const LPPOWER_REQUEST_CONTEXT = ?&REASON_CONTEXT;
pub extern fn PowerCreateRequest(Context: PREASON_CONTEXT) -> HANDLE;
pub extern fn PowerSetRequest(PowerRequest: HANDLE, RequestType: POWER_REQUEST_TYPE) -> BOOL;
pub extern fn PowerClearRequest(PowerRequest: HANDLE, RequestType: POWER_REQUEST_TYPE) -> BOOL;
pub extern fn SetFileCompletionNotificationModes(FileHandle: HANDLE, Flags: UCHAR) -> BOOL;
pub extern fn GetThreadErrorMode() -> DWORD;
pub extern fn SetThreadErrorMode(dwNewMode: DWORD, lpOldMode: LPDWORD) -> BOOL;
pub extern fn Wow64GetThreadContext(hThread: HANDLE, lpContext: PWOW64_CONTEXT) -> BOOL;
pub extern fn Wow64SetThreadContext(hThread: HANDLE, lpContext: ?&const WOW64_CONTEXT) -> BOOL;
pub extern fn Wow64GetThreadSelectorEntry(hThread: HANDLE, dwSelector: DWORD, lpSelectorEntry: PWOW64_LDT_ENTRY) -> BOOL;
pub extern fn Wow64SuspendThread(hThread: HANDLE) -> DWORD;
pub extern fn DebugSetProcessKillOnExit(KillOnExit: BOOL) -> BOOL;
pub extern fn DebugBreakProcess(Process: HANDLE) -> BOOL;
pub extern fn PulseEvent(hEvent: HANDLE) -> BOOL;
pub extern fn WaitForMultipleObjects(nCount: DWORD, lpHandles: ?&const HANDLE, bWaitAll: BOOL, dwMilliseconds: DWORD) -> DWORD;
pub extern fn GlobalDeleteAtom(nAtom: ATOM) -> ATOM;
pub extern fn InitAtomTable(nSize: DWORD) -> BOOL;
pub extern fn DeleteAtom(nAtom: ATOM) -> ATOM;
pub extern fn SetHandleCount(uNumber: UINT) -> UINT;
pub extern fn RequestDeviceWakeup(hDevice: HANDLE) -> BOOL;
pub extern fn CancelDeviceWakeupRequest(hDevice: HANDLE) -> BOOL;
pub extern fn GetDevicePowerState(hDevice: HANDLE, pfOn: ?&BOOL) -> BOOL;
pub extern fn SetMessageWaitingIndicator(hMsgIndicator: HANDLE, ulMsgCount: ULONG) -> BOOL;
pub extern fn SetFileShortNameA(hFile: HANDLE, lpShortName: LPCSTR) -> BOOL;
pub extern fn SetFileShortNameW(hFile: HANDLE, lpShortName: LPCWSTR) -> BOOL;
pub extern fn LoadModule(lpModuleName: LPCSTR, lpParameterBlock: LPVOID) -> DWORD;
pub extern fn WinExec(lpCmdLine: LPCSTR, uCmdShow: UINT) -> UINT;
pub extern fn ClearCommBreak(hFile: HANDLE) -> BOOL;
pub extern fn ClearCommError(hFile: HANDLE, lpErrors: LPDWORD, lpStat: LPCOMSTAT) -> BOOL;
pub extern fn SetupComm(hFile: HANDLE, dwInQueue: DWORD, dwOutQueue: DWORD) -> BOOL;
pub extern fn EscapeCommFunction(hFile: HANDLE, dwFunc: DWORD) -> BOOL;
pub extern fn GetCommConfig(hCommDev: HANDLE, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD) -> BOOL;
pub extern fn GetCommMask(hFile: HANDLE, lpEvtMask: LPDWORD) -> BOOL;
pub extern fn GetCommProperties(hFile: HANDLE, lpCommProp: LPCOMMPROP) -> BOOL;
pub extern fn GetCommModemStatus(hFile: HANDLE, lpModemStat: LPDWORD) -> BOOL;
pub extern fn GetCommState(hFile: HANDLE, lpDCB: LPDCB) -> BOOL;
pub extern fn GetCommTimeouts(hFile: HANDLE, lpCommTimeouts: LPCOMMTIMEOUTS) -> BOOL;
pub extern fn PurgeComm(hFile: HANDLE, dwFlags: DWORD) -> BOOL;
pub extern fn SetCommBreak(hFile: HANDLE) -> BOOL;
pub extern fn SetCommConfig(hCommDev: HANDLE, lpCC: LPCOMMCONFIG, dwSize: DWORD) -> BOOL;
pub extern fn SetCommMask(hFile: HANDLE, dwEvtMask: DWORD) -> BOOL;
pub extern fn SetCommState(hFile: HANDLE, lpDCB: LPDCB) -> BOOL;
pub extern fn SetCommTimeouts(hFile: HANDLE, lpCommTimeouts: LPCOMMTIMEOUTS) -> BOOL;
pub extern fn TransmitCommChar(hFile: HANDLE, cChar: u8) -> BOOL;
pub extern fn WaitCommEvent(hFile: HANDLE, lpEvtMask: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL;
pub extern fn SetTapePosition(hDevice: HANDLE, dwPositionMethod: DWORD, dwPartition: DWORD, dwOffsetLow: DWORD, dwOffsetHigh: DWORD, bImmediate: BOOL) -> DWORD;
pub extern fn GetTapePosition(hDevice: HANDLE, dwPositionType: DWORD, lpdwPartition: LPDWORD, lpdwOffsetLow: LPDWORD, lpdwOffsetHigh: LPDWORD) -> DWORD;
pub extern fn PrepareTape(hDevice: HANDLE, dwOperation: DWORD, bImmediate: BOOL) -> DWORD;
pub extern fn EraseTape(hDevice: HANDLE, dwEraseType: DWORD, bImmediate: BOOL) -> DWORD;
pub extern fn CreateTapePartition(hDevice: HANDLE, dwPartitionMethod: DWORD, dwCount: DWORD, dwSize: DWORD) -> DWORD;
pub extern fn WriteTapemark(hDevice: HANDLE, dwTapemarkType: DWORD, dwTapemarkCount: DWORD, bImmediate: BOOL) -> DWORD;
pub extern fn GetTapeStatus(hDevice: HANDLE) -> DWORD;
pub extern fn GetTapeParameters(hDevice: HANDLE, dwOperation: DWORD, lpdwSize: LPDWORD, lpTapeInformation: LPVOID) -> DWORD;
pub extern fn SetTapeParameters(hDevice: HANDLE, dwOperation: DWORD, lpTapeInformation: LPVOID) -> DWORD;
pub extern fn MulDiv(nNumber: c_int, nNumerator: c_int, nDenominator: c_int) -> c_int;
pub const DEPPolicyAlwaysOff: c_int = 0;
pub const DEPPolicyAlwaysOn: c_int = 1;
pub const DEPPolicyOptIn: c_int = 2;
pub const DEPPolicyOptOut: c_int = 3;
pub const DEPTotalPolicyCount: c_int = 4;
pub const enum__DEP_SYSTEM_POLICY_TYPE = c_int;
pub const DEPPolicyAlwaysOff: c_int = 0;
pub const DEPPolicyAlwaysOn: c_int = 1;
pub const DEPPolicyOptIn: c_int = 2;
pub const DEPPolicyOptOut: c_int = 3;
pub const DEPTotalPolicyCount: c_int = 4;
pub const enum__DEP_SYSTEM_POLICY_TYPE = c_int;
pub const DEP_SYSTEM_POLICY_TYPE = enum__DEP_SYSTEM_POLICY_TYPE;
pub extern fn GetSystemDEPPolicy() -> DEP_SYSTEM_POLICY_TYPE;
pub extern fn GetSystemRegistryQuota(pdwQuotaAllowed: PDWORD, pdwQuotaUsed: PDWORD) -> BOOL;
pub extern fn FileTimeToDosDateTime(lpFileTime: ?&const FILETIME, lpFatDate: LPWORD, lpFatTime: LPWORD) -> BOOL;
pub extern fn DosDateTimeToFileTime(wFatDate: WORD, wFatTime: WORD, lpFileTime: LPFILETIME) -> BOOL;
pub extern fn FormatMessageA(dwFlags: DWORD, lpSource: LPCVOID, dwMessageId: DWORD, dwLanguageId: DWORD, lpBuffer: LPSTR, nSize: DWORD, Arguments: ?&va_list) -> DWORD;
pub extern fn FormatMessageW(dwFlags: DWORD, lpSource: LPCVOID, dwMessageId: DWORD, dwLanguageId: DWORD, lpBuffer: LPWSTR, nSize: DWORD, Arguments: ?&va_list) -> DWORD;
pub extern fn GetNamedPipeInfo(hNamedPipe: HANDLE, lpFlags: LPDWORD, lpOutBufferSize: LPDWORD, lpInBufferSize: LPDWORD, lpMaxInstances: LPDWORD) -> BOOL;
pub extern fn CreateMailslotA(lpName: LPCSTR, nMaxMessageSize: DWORD, lReadTimeout: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> HANDLE;
pub extern fn CreateMailslotW(lpName: LPCWSTR, nMaxMessageSize: DWORD, lReadTimeout: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> HANDLE;
pub extern fn GetMailslotInfo(hMailslot: HANDLE, lpMaxMessageSize: LPDWORD, lpNextSize: LPDWORD, lpMessageCount: LPDWORD, lpReadTimeout: LPDWORD) -> BOOL;
pub extern fn SetMailslotInfo(hMailslot: HANDLE, lReadTimeout: DWORD) -> BOOL;
pub extern fn EncryptFileA(lpFileName: LPCSTR) -> BOOL;
pub extern fn EncryptFileW(lpFileName: LPCWSTR) -> BOOL;
pub extern fn DecryptFileA(lpFileName: LPCSTR, dwReserved: DWORD) -> BOOL;
pub extern fn DecryptFileW(lpFileName: LPCWSTR, dwReserved: DWORD) -> BOOL;
pub extern fn FileEncryptionStatusA(lpFileName: LPCSTR, lpStatus: LPDWORD) -> BOOL;
pub extern fn FileEncryptionStatusW(lpFileName: LPCWSTR, lpStatus: LPDWORD) -> BOOL;
pub const PFE_EXPORT_FUNC = ?extern fn(PBYTE, PVOID, ULONG) -> DWORD;
pub const PFE_IMPORT_FUNC = ?extern fn(PBYTE, PVOID, PULONG) -> DWORD;
pub extern fn OpenEncryptedFileRawA(lpFileName: LPCSTR, ulFlags: ULONG, pvContext: ?&PVOID) -> DWORD;
pub extern fn OpenEncryptedFileRawW(lpFileName: LPCWSTR, ulFlags: ULONG, pvContext: ?&PVOID) -> DWORD;
pub extern fn ReadEncryptedFileRaw(pfExportCallback: PFE_EXPORT_FUNC, pvCallbackContext: PVOID, pvContext: PVOID) -> DWORD;
pub extern fn WriteEncryptedFileRaw(pfImportCallback: PFE_IMPORT_FUNC, pvCallbackContext: PVOID, pvContext: PVOID) -> DWORD;
pub extern fn CloseEncryptedFileRaw(pvContext: PVOID);
pub extern fn lstrcmpA(lpString1: LPCSTR, lpString2: LPCSTR) -> c_int;
pub extern fn lstrcmpW(lpString1: LPCWSTR, lpString2: LPCWSTR) -> c_int;
pub extern fn lstrcmpiA(lpString1: LPCSTR, lpString2: LPCSTR) -> c_int;
pub extern fn lstrcmpiW(lpString1: LPCWSTR, lpString2: LPCWSTR) -> c_int;
pub extern fn lstrcpynA(lpString1: LPSTR, lpString2: LPCSTR, iMaxLength: c_int) -> LPSTR;
pub extern fn lstrcpynW(lpString1: LPWSTR, lpString2: LPCWSTR, iMaxLength: c_int) -> LPWSTR;
pub extern fn lstrcpyA(lpString1: LPSTR, lpString2: LPCSTR) -> LPSTR;
pub extern fn lstrcpyW(lpString1: LPWSTR, lpString2: LPCWSTR) -> LPWSTR;
pub extern fn lstrcatA(lpString1: LPSTR, lpString2: LPCSTR) -> LPSTR;
pub extern fn lstrcatW(lpString1: LPWSTR, lpString2: LPCWSTR) -> LPWSTR;
pub extern fn lstrlenA(lpString: LPCSTR) -> c_int;
pub extern fn lstrlenW(lpString: LPCWSTR) -> c_int;
pub extern fn OpenFile(lpFileName: LPCSTR, lpReOpenBuff: LPOFSTRUCT, uStyle: UINT) -> HFILE;
pub extern fn _lopen(lpPathName: LPCSTR, iReadWrite: c_int) -> HFILE;
pub extern fn _lcreat(lpPathName: LPCSTR, iAttribute: c_int) -> HFILE;
pub extern fn _lread(hFile: HFILE, lpBuffer: LPVOID, uBytes: UINT) -> UINT;
pub extern fn _lwrite(hFile: HFILE, lpBuffer: LPCCH, uBytes: UINT) -> UINT;
pub extern fn _hread(hFile: HFILE, lpBuffer: LPVOID, lBytes: c_long) -> c_long;
pub extern fn _hwrite(hFile: HFILE, lpBuffer: LPCCH, lBytes: c_long) -> c_long;
pub extern fn _lclose(hFile: HFILE) -> HFILE;
pub extern fn _llseek(hFile: HFILE, lOffset: LONG, iOrigin: c_int) -> LONG;
pub extern fn IsTextUnicode(lpv: ?&const c_void, iSize: c_int, lpiResult: LPINT) -> BOOL;
pub extern fn BackupRead(hFile: HANDLE, lpBuffer: LPBYTE, nNumberOfBytesToRead: DWORD, lpNumberOfBytesRead: LPDWORD, bAbort: BOOL, bProcessSecurity: BOOL, lpContext: ?&LPVOID) -> BOOL;
pub extern fn BackupSeek(hFile: HANDLE, dwLowBytesToSeek: DWORD, dwHighBytesToSeek: DWORD, lpdwLowByteSeeked: LPDWORD, lpdwHighByteSeeked: LPDWORD, lpContext: ?&LPVOID) -> BOOL;
pub extern fn BackupWrite(hFile: HANDLE, lpBuffer: LPBYTE, nNumberOfBytesToWrite: DWORD, lpNumberOfBytesWritten: LPDWORD, bAbort: BOOL, bProcessSecurity: BOOL, lpContext: ?&LPVOID) -> BOOL;
pub const struct__WIN32_STREAM_ID = @OpaqueType();
pub const WIN32_STREAM_ID = struct__WIN32_STREAM_ID;
pub const LPWIN32_STREAM_ID = ?&struct__WIN32_STREAM_ID;
pub const struct__STARTUPINFOEXA = extern struct {
StartupInfo: STARTUPINFOA,
lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST,
};
pub const STARTUPINFOEXA = struct__STARTUPINFOEXA;
pub const LPSTARTUPINFOEXA = ?&struct__STARTUPINFOEXA;
pub const struct__STARTUPINFOEXW = extern struct {
StartupInfo: STARTUPINFOW,
lpAttributeList: LPPROC_THREAD_ATTRIBUTE_LIST,
};
pub const STARTUPINFOEXW = struct__STARTUPINFOEXW;
pub const LPSTARTUPINFOEXW = ?&struct__STARTUPINFOEXW;
pub const STARTUPINFOEX = STARTUPINFOEXA;
pub const LPSTARTUPINFOEX = LPSTARTUPINFOEXA;
pub extern fn OpenMutexA(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE;
pub extern fn CreateSemaphoreA(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE;
pub extern fn CreateSemaphoreW(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE;
pub extern fn OpenSemaphoreA(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE;
pub extern fn CreateWaitableTimerA(lpTimerAttributes: LPSECURITY_ATTRIBUTES, bManualReset: BOOL, lpTimerName: LPCSTR) -> HANDLE;
pub extern fn CreateWaitableTimerW(lpTimerAttributes: LPSECURITY_ATTRIBUTES, bManualReset: BOOL, lpTimerName: LPCWSTR) -> HANDLE;
pub extern fn OpenWaitableTimerA(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpTimerName: LPCSTR) -> HANDLE;
pub extern fn CreateSemaphoreExA(lpSemaphoreAttributes: LPSECURITY_ATTRIBUTES, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR, dwFlags: DWORD, dwDesiredAccess: DWORD) -> HANDLE;
pub extern fn CreateWaitableTimerExA(lpTimerAttributes: LPSECURITY_ATTRIBUTES, lpTimerName: LPCSTR, dwFlags: DWORD, dwDesiredAccess: DWORD) -> HANDLE;
pub extern fn CreateFileMappingA(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCSTR) -> HANDLE;
pub extern fn CreateFileMappingNumaA(hFile: HANDLE, lpFileMappingAttributes: LPSECURITY_ATTRIBUTES, flProtect: DWORD, dwMaximumSizeHigh: DWORD, dwMaximumSizeLow: DWORD, lpName: LPCSTR, nndPreferred: DWORD) -> HANDLE;
pub extern fn OpenFileMappingA(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE;
pub extern fn GetLogicalDriveStringsA(nBufferLength: DWORD, lpBuffer: LPSTR) -> DWORD;
pub extern fn LoadLibraryA(lpLibFileName: LPCSTR) -> HMODULE;
pub extern fn LoadLibraryW(lpLibFileName: LPCWSTR) -> HMODULE;
pub extern fn LoadPackagedLibrary(lpwLibFileName: LPCWSTR, Reserved: DWORD) -> HMODULE;
pub extern fn QueryFullProcessImageNameA(hProcess: HANDLE, dwFlags: DWORD, lpExeName: LPSTR, lpdwSize: PDWORD) -> BOOL;
pub extern fn QueryFullProcessImageNameW(hProcess: HANDLE, dwFlags: DWORD, lpExeName: LPWSTR, lpdwSize: PDWORD) -> BOOL;
pub const ProcThreadAttributeParentProcess: c_int = 0;
pub const ProcThreadAttributeHandleList: c_int = 2;
pub const ProcThreadAttributeGroupAffinity: c_int = 3;
pub const ProcThreadAttributePreferredNode: c_int = 4;
pub const ProcThreadAttributeIdealProcessor: c_int = 5;
pub const ProcThreadAttributeUmsThread: c_int = 6;
pub const ProcThreadAttributeMitigationPolicy: c_int = 7;
pub const ProcThreadAttributeSecurityCapabilities: c_int = 9;
pub const ProcThreadAttributeProtectionLevel: c_int = 11;
pub const enum__PROC_THREAD_ATTRIBUTE_NUM = c_int;
pub const ProcThreadAttributeParentProcess: c_int = 0;
pub const ProcThreadAttributeHandleList: c_int = 2;
pub const ProcThreadAttributeGroupAffinity: c_int = 3;
pub const ProcThreadAttributePreferredNode: c_int = 4;
pub const ProcThreadAttributeIdealProcessor: c_int = 5;
pub const ProcThreadAttributeUmsThread: c_int = 6;
pub const ProcThreadAttributeMitigationPolicy: c_int = 7;
pub const ProcThreadAttributeSecurityCapabilities: c_int = 9;
pub const ProcThreadAttributeProtectionLevel: c_int = 11;
pub const enum__PROC_THREAD_ATTRIBUTE_NUM = c_int;
pub const PROC_THREAD_ATTRIBUTE_NUM = enum__PROC_THREAD_ATTRIBUTE_NUM;
pub extern fn GetProcessShutdownParameters(lpdwLevel: LPDWORD, lpdwFlags: LPDWORD) -> BOOL;
pub extern fn FatalAppExitA(uAction: UINT, lpMessageText: LPCSTR);
pub extern fn FatalAppExitW(uAction: UINT, lpMessageText: LPCWSTR);
pub extern fn GetStartupInfoA(lpStartupInfo: LPSTARTUPINFOA);
pub extern fn GetFirmwareEnvironmentVariableA(lpName: LPCSTR, lpGuid: LPCSTR, pBuffer: PVOID, nSize: DWORD) -> DWORD;
pub extern fn GetFirmwareEnvironmentVariableW(lpName: LPCWSTR, lpGuid: LPCWSTR, pBuffer: PVOID, nSize: DWORD) -> DWORD;
pub extern fn GetFirmwareEnvironmentVariableExA(lpName: LPCSTR, lpGuid: LPCSTR, pBuffer: PVOID, nSize: DWORD, pdwAttribubutes: PDWORD) -> DWORD;
pub extern fn GetFirmwareEnvironmentVariableExW(lpName: LPCWSTR, lpGuid: LPCWSTR, pBuffer: PVOID, nSize: DWORD, pdwAttribubutes: PDWORD) -> DWORD;
pub extern fn SetFirmwareEnvironmentVariableA(lpName: LPCSTR, lpGuid: LPCSTR, pValue: PVOID, nSize: DWORD) -> BOOL;
pub extern fn SetFirmwareEnvironmentVariableW(lpName: LPCWSTR, lpGuid: LPCWSTR, pValue: PVOID, nSize: DWORD) -> BOOL;
pub extern fn SetFirmwareEnvironmentVariableExA(lpName: LPCSTR, lpGuid: LPCSTR, pValue: PVOID, nSize: DWORD, dwAttributes: DWORD) -> BOOL;
pub extern fn SetFirmwareEnvironmentVariableExW(lpName: LPCWSTR, lpGuid: LPCWSTR, pValue: PVOID, nSize: DWORD, dwAttributes: DWORD) -> BOOL;
pub extern fn GetFirmwareType(FirmwareType: PFIRMWARE_TYPE) -> BOOL;
pub extern fn IsNativeVhdBoot(NativeVhdBoot: PBOOL) -> BOOL;
pub extern fn FindResourceA(hModule: HMODULE, lpName: LPCSTR, lpType: LPCSTR) -> HRSRC;
pub extern fn FindResourceW(hModule: HMODULE, lpName: LPCWSTR, lpType: LPCWSTR) -> HRSRC;
pub extern fn FindResourceExA(hModule: HMODULE, lpType: LPCSTR, lpName: LPCSTR, wLanguage: WORD) -> HRSRC;
pub extern fn EnumResourceTypesA(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCA, lParam: LONG_PTR) -> BOOL;
pub extern fn EnumResourceTypesW(hModule: HMODULE, lpEnumFunc: ENUMRESTYPEPROCW, lParam: LONG_PTR) -> BOOL;
pub extern fn EnumResourceNamesA(hModule: HMODULE, lpType: LPCSTR, lpEnumFunc: ENUMRESNAMEPROCA, lParam: LONG_PTR) -> BOOL;
pub extern fn EnumResourceNamesW(hModule: HMODULE, lpType: LPCWSTR, lpEnumFunc: ENUMRESNAMEPROCW, lParam: LONG_PTR) -> BOOL;
pub extern fn EnumResourceLanguagesA(hModule: HMODULE, lpType: LPCSTR, lpName: LPCSTR, lpEnumFunc: ENUMRESLANGPROCA, lParam: LONG_PTR) -> BOOL;
pub extern fn EnumResourceLanguagesW(hModule: HMODULE, lpType: LPCWSTR, lpName: LPCWSTR, lpEnumFunc: ENUMRESLANGPROCW, lParam: LONG_PTR) -> BOOL;
pub extern fn BeginUpdateResourceA(pFileName: LPCSTR, bDeleteExistingResources: BOOL) -> HANDLE;
pub extern fn BeginUpdateResourceW(pFileName: LPCWSTR, bDeleteExistingResources: BOOL) -> HANDLE;
pub extern fn UpdateResourceA(hUpdate: HANDLE, lpType: LPCSTR, lpName: LPCSTR, wLanguage: WORD, lpData: LPVOID, cb: DWORD) -> BOOL;
pub extern fn UpdateResourceW(hUpdate: HANDLE, lpType: LPCWSTR, lpName: LPCWSTR, wLanguage: WORD, lpData: LPVOID, cb: DWORD) -> BOOL;
pub extern fn EndUpdateResourceA(hUpdate: HANDLE, fDiscard: BOOL) -> BOOL;
pub extern fn EndUpdateResourceW(hUpdate: HANDLE, fDiscard: BOOL) -> BOOL;
pub extern fn GlobalAddAtomA(lpString: LPCSTR) -> ATOM;
pub extern fn GlobalAddAtomW(lpString: LPCWSTR) -> ATOM;
pub extern fn GlobalAddAtomExA(lpString: LPCSTR, Flags: DWORD) -> ATOM;
pub extern fn GlobalAddAtomExW(lpString: LPCWSTR, Flags: DWORD) -> ATOM;
pub extern fn GlobalFindAtomA(lpString: LPCSTR) -> ATOM;
pub extern fn GlobalFindAtomW(lpString: LPCWSTR) -> ATOM;
pub extern fn GlobalGetAtomNameA(nAtom: ATOM, lpBuffer: LPSTR, nSize: c_int) -> UINT;
pub extern fn GlobalGetAtomNameW(nAtom: ATOM, lpBuffer: LPWSTR, nSize: c_int) -> UINT;
pub extern fn AddAtomA(lpString: LPCSTR) -> ATOM;
pub extern fn AddAtomW(lpString: LPCWSTR) -> ATOM;
pub extern fn FindAtomA(lpString: LPCSTR) -> ATOM;
pub extern fn FindAtomW(lpString: LPCWSTR) -> ATOM;
pub extern fn GetAtomNameA(nAtom: ATOM, lpBuffer: LPSTR, nSize: c_int) -> UINT;
pub extern fn GetAtomNameW(nAtom: ATOM, lpBuffer: LPWSTR, nSize: c_int) -> UINT;
pub extern fn GetProfileIntA(lpAppName: LPCSTR, lpKeyName: LPCSTR, nDefault: INT) -> UINT;
pub extern fn GetProfileIntW(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, nDefault: INT) -> UINT;
pub extern fn GetProfileStringA(lpAppName: LPCSTR, lpKeyName: LPCSTR, lpDefault: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD) -> DWORD;
pub extern fn GetProfileStringW(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpDefault: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD) -> DWORD;
pub extern fn WriteProfileStringA(lpAppName: LPCSTR, lpKeyName: LPCSTR, lpString: LPCSTR) -> BOOL;
pub extern fn WriteProfileStringW(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpString: LPCWSTR) -> BOOL;
pub extern fn GetProfileSectionA(lpAppName: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD) -> DWORD;
pub extern fn GetProfileSectionW(lpAppName: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD) -> DWORD;
pub extern fn WriteProfileSectionA(lpAppName: LPCSTR, lpString: LPCSTR) -> BOOL;
pub extern fn WriteProfileSectionW(lpAppName: LPCWSTR, lpString: LPCWSTR) -> BOOL;
pub extern fn GetPrivateProfileIntA(lpAppName: LPCSTR, lpKeyName: LPCSTR, nDefault: INT, lpFileName: LPCSTR) -> UINT;
pub extern fn GetPrivateProfileIntW(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, nDefault: INT, lpFileName: LPCWSTR) -> UINT;
pub extern fn GetPrivateProfileStringA(lpAppName: LPCSTR, lpKeyName: LPCSTR, lpDefault: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD, lpFileName: LPCSTR) -> DWORD;
pub extern fn GetPrivateProfileStringW(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpDefault: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD, lpFileName: LPCWSTR) -> DWORD;
pub extern fn WritePrivateProfileStringA(lpAppName: LPCSTR, lpKeyName: LPCSTR, lpString: LPCSTR, lpFileName: LPCSTR) -> BOOL;
pub extern fn WritePrivateProfileStringW(lpAppName: LPCWSTR, lpKeyName: LPCWSTR, lpString: LPCWSTR, lpFileName: LPCWSTR) -> BOOL;
pub extern fn GetPrivateProfileSectionA(lpAppName: LPCSTR, lpReturnedString: LPSTR, nSize: DWORD, lpFileName: LPCSTR) -> DWORD;
pub extern fn GetPrivateProfileSectionW(lpAppName: LPCWSTR, lpReturnedString: LPWSTR, nSize: DWORD, lpFileName: LPCWSTR) -> DWORD;
pub extern fn WritePrivateProfileSectionA(lpAppName: LPCSTR, lpString: LPCSTR, lpFileName: LPCSTR) -> BOOL;
pub extern fn WritePrivateProfileSectionW(lpAppName: LPCWSTR, lpString: LPCWSTR, lpFileName: LPCWSTR) -> BOOL;
pub extern fn GetPrivateProfileSectionNamesA(lpszReturnBuffer: LPSTR, nSize: DWORD, lpFileName: LPCSTR) -> DWORD;
pub extern fn GetPrivateProfileSectionNamesW(lpszReturnBuffer: LPWSTR, nSize: DWORD, lpFileName: LPCWSTR) -> DWORD;
pub extern fn GetPrivateProfileStructA(lpszSection: LPCSTR, lpszKey: LPCSTR, lpStruct: LPVOID, uSizeStruct: UINT, szFile: LPCSTR) -> BOOL;
pub extern fn GetPrivateProfileStructW(lpszSection: LPCWSTR, lpszKey: LPCWSTR, lpStruct: LPVOID, uSizeStruct: UINT, szFile: LPCWSTR) -> BOOL;
pub extern fn WritePrivateProfileStructA(lpszSection: LPCSTR, lpszKey: LPCSTR, lpStruct: LPVOID, uSizeStruct: UINT, szFile: LPCSTR) -> BOOL;
pub extern fn WritePrivateProfileStructW(lpszSection: LPCWSTR, lpszKey: LPCWSTR, lpStruct: LPVOID, uSizeStruct: UINT, szFile: LPCWSTR) -> BOOL;
pub extern fn GetTempPathA(nBufferLength: DWORD, lpBuffer: LPSTR) -> DWORD;
pub extern fn GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: LPSTR) -> UINT;
pub extern fn GetSystemWow64DirectoryA(lpBuffer: LPSTR, uSize: UINT) -> UINT;
pub extern fn GetSystemWow64DirectoryW(lpBuffer: LPWSTR, uSize: UINT) -> UINT;
pub extern fn Wow64EnableWow64FsRedirection(Wow64FsEnableRedirection: BOOLEAN) -> BOOLEAN;
pub const PGET_SYSTEM_WOW64_DIRECTORY_A = ?extern fn(LPSTR, UINT) -> UINT;
pub const PGET_SYSTEM_WOW64_DIRECTORY_W = ?extern fn(LPWSTR, UINT) -> UINT;
pub extern fn SetDllDirectoryA(lpPathName: LPCSTR) -> BOOL;
pub extern fn SetDllDirectoryW(lpPathName: LPCWSTR) -> BOOL;
pub extern fn GetDllDirectoryA(nBufferLength: DWORD, lpBuffer: LPSTR) -> DWORD;
pub extern fn GetDllDirectoryW(nBufferLength: DWORD, lpBuffer: LPWSTR) -> DWORD;
pub extern fn SetSearchPathMode(Flags: DWORD) -> BOOL;
pub extern fn CreateDirectoryExA(lpTemplateDirectory: LPCSTR, lpNewDirectory: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> BOOL;
pub extern fn CreateDirectoryExW(lpTemplateDirectory: LPCWSTR, lpNewDirectory: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> BOOL;
pub extern fn CreateDirectoryTransactedA(lpTemplateDirectory: LPCSTR, lpNewDirectory: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, hTransaction: HANDLE) -> BOOL;
pub extern fn CreateDirectoryTransactedW(lpTemplateDirectory: LPCWSTR, lpNewDirectory: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, hTransaction: HANDLE) -> BOOL;
pub extern fn RemoveDirectoryTransactedA(lpPathName: LPCSTR, hTransaction: HANDLE) -> BOOL;
pub extern fn RemoveDirectoryTransactedW(lpPathName: LPCWSTR, hTransaction: HANDLE) -> BOOL;
pub extern fn GetFullPathNameTransactedA(lpFileName: LPCSTR, nBufferLength: DWORD, lpBuffer: LPSTR, lpFilePart: ?&LPSTR, hTransaction: HANDLE) -> DWORD;
pub extern fn GetFullPathNameTransactedW(lpFileName: LPCWSTR, nBufferLength: DWORD, lpBuffer: LPWSTR, lpFilePart: ?&LPWSTR, hTransaction: HANDLE) -> DWORD;
pub extern fn DefineDosDeviceA(dwFlags: DWORD, lpDeviceName: LPCSTR, lpTargetPath: LPCSTR) -> BOOL;
pub extern fn QueryDosDeviceA(lpDeviceName: LPCSTR, lpTargetPath: LPSTR, ucchMax: DWORD) -> DWORD;
pub extern fn CreateFileTransactedA(lpFileName: LPCSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE, hTransaction: HANDLE, pusMiniVersion: PUSHORT, lpExtendedParameter: PVOID) -> HANDLE;
pub extern fn CreateFileTransactedW(lpFileName: LPCWSTR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwCreationDisposition: DWORD, dwFlagsAndAttributes: DWORD, hTemplateFile: HANDLE, hTransaction: HANDLE, pusMiniVersion: PUSHORT, lpExtendedParameter: PVOID) -> HANDLE;
pub extern fn ReOpenFile(hOriginalFile: HANDLE, dwDesiredAccess: DWORD, dwShareMode: DWORD, dwFlagsAndAttributes: DWORD) -> HANDLE;
pub extern fn SetFileAttributesTransactedA(lpFileName: LPCSTR, dwFileAttributes: DWORD, hTransaction: HANDLE) -> BOOL;
pub extern fn SetFileAttributesTransactedW(lpFileName: LPCWSTR, dwFileAttributes: DWORD, hTransaction: HANDLE) -> BOOL;
pub extern fn GetFileAttributesTransactedA(lpFileName: LPCSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID, hTransaction: HANDLE) -> BOOL;
pub extern fn GetFileAttributesTransactedW(lpFileName: LPCWSTR, fInfoLevelId: GET_FILEEX_INFO_LEVELS, lpFileInformation: LPVOID, hTransaction: HANDLE) -> BOOL;
pub extern fn GetCompressedFileSizeTransactedA(lpFileName: LPCSTR, lpFileSizeHigh: LPDWORD, hTransaction: HANDLE) -> DWORD;
pub extern fn GetCompressedFileSizeTransactedW(lpFileName: LPCWSTR, lpFileSizeHigh: LPDWORD, hTransaction: HANDLE) -> DWORD;
pub extern fn DeleteFileTransactedA(lpFileName: LPCSTR, hTransaction: HANDLE) -> BOOL;
pub extern fn DeleteFileTransactedW(lpFileName: LPCWSTR, hTransaction: HANDLE) -> BOOL;
pub extern fn CheckNameLegalDOS8Dot3A(lpName: LPCSTR, lpOemName: LPSTR, OemNameSize: DWORD, pbNameContainsSpaces: PBOOL, pbNameLegal: PBOOL) -> BOOL;
pub extern fn CheckNameLegalDOS8Dot3W(lpName: LPCWSTR, lpOemName: LPSTR, OemNameSize: DWORD, pbNameContainsSpaces: PBOOL, pbNameLegal: PBOOL) -> BOOL;
pub extern fn FindFirstFileTransactedA(lpFileName: LPCSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID, fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD, hTransaction: HANDLE) -> HANDLE;
pub extern fn FindFirstFileTransactedW(lpFileName: LPCWSTR, fInfoLevelId: FINDEX_INFO_LEVELS, lpFindFileData: LPVOID, fSearchOp: FINDEX_SEARCH_OPS, lpSearchFilter: LPVOID, dwAdditionalFlags: DWORD, hTransaction: HANDLE) -> HANDLE;
pub extern fn CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL;
pub extern fn CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL;
pub const COPYFILE2_CALLBACK_NONE: c_int = 0;
pub const COPYFILE2_CALLBACK_CHUNK_STARTED: c_int = 1;
pub const COPYFILE2_CALLBACK_CHUNK_FINISHED: c_int = 2;
pub const COPYFILE2_CALLBACK_STREAM_STARTED: c_int = 3;
pub const COPYFILE2_CALLBACK_STREAM_FINISHED: c_int = 4;
pub const COPYFILE2_CALLBACK_POLL_CONTINUE: c_int = 5;
pub const COPYFILE2_CALLBACK_ERROR: c_int = 6;
pub const COPYFILE2_CALLBACK_MAX: c_int = 7;
pub const enum__COPYFILE2_MESSAGE_TYPE = c_int;
pub const COPYFILE2_CALLBACK_NONE: c_int = 0;
pub const COPYFILE2_CALLBACK_CHUNK_STARTED: c_int = 1;
pub const COPYFILE2_CALLBACK_CHUNK_FINISHED: c_int = 2;
pub const COPYFILE2_CALLBACK_STREAM_STARTED: c_int = 3;
pub const COPYFILE2_CALLBACK_STREAM_FINISHED: c_int = 4;
pub const COPYFILE2_CALLBACK_POLL_CONTINUE: c_int = 5;
pub const COPYFILE2_CALLBACK_ERROR: c_int = 6;
pub const COPYFILE2_CALLBACK_MAX: c_int = 7;
pub const enum__COPYFILE2_MESSAGE_TYPE = c_int;
pub const COPYFILE2_MESSAGE_TYPE = enum__COPYFILE2_MESSAGE_TYPE;
pub const COPYFILE2_PROGRESS_CONTINUE: c_int = 0;
pub const COPYFILE2_PROGRESS_CANCEL: c_int = 1;
pub const COPYFILE2_PROGRESS_STOP: c_int = 2;
pub const COPYFILE2_PROGRESS_QUIET: c_int = 3;
pub const COPYFILE2_PROGRESS_PAUSE: c_int = 4;
pub const enum__COPYFILE2_MESSAGE_ACTION = c_int;
pub const COPYFILE2_PROGRESS_CONTINUE: c_int = 0;
pub const COPYFILE2_PROGRESS_CANCEL: c_int = 1;
pub const COPYFILE2_PROGRESS_STOP: c_int = 2;
pub const COPYFILE2_PROGRESS_QUIET: c_int = 3;
pub const COPYFILE2_PROGRESS_PAUSE: c_int = 4;
pub const enum__COPYFILE2_MESSAGE_ACTION = c_int;
pub const COPYFILE2_MESSAGE_ACTION = enum__COPYFILE2_MESSAGE_ACTION;
pub const COPYFILE2_PHASE_NONE: c_int = 0;
pub const COPYFILE2_PHASE_PREPARE_SOURCE: c_int = 1;
pub const COPYFILE2_PHASE_PREPARE_DEST: c_int = 2;
pub const COPYFILE2_PHASE_READ_SOURCE: c_int = 3;
pub const COPYFILE2_PHASE_WRITE_DESTINATION: c_int = 4;
pub const COPYFILE2_PHASE_SERVER_COPY: c_int = 5;
pub const COPYFILE2_PHASE_NAMEGRAFT_COPY: c_int = 6;
pub const COPYFILE2_PHASE_MAX: c_int = 7;
pub const enum__COPYFILE2_COPY_PHASE = c_int;
pub const COPYFILE2_PHASE_NONE: c_int = 0;
pub const COPYFILE2_PHASE_PREPARE_SOURCE: c_int = 1;
pub const COPYFILE2_PHASE_PREPARE_DEST: c_int = 2;
pub const COPYFILE2_PHASE_READ_SOURCE: c_int = 3;
pub const COPYFILE2_PHASE_WRITE_DESTINATION: c_int = 4;
pub const COPYFILE2_PHASE_SERVER_COPY: c_int = 5;
pub const COPYFILE2_PHASE_NAMEGRAFT_COPY: c_int = 6;
pub const COPYFILE2_PHASE_MAX: c_int = 7;
pub const enum__COPYFILE2_COPY_PHASE = c_int;
pub const COPYFILE2_COPY_PHASE = enum__COPYFILE2_COPY_PHASE;
pub const struct_COPYFILE2_MESSAGE = @OpaqueType();
pub const COPYFILE2_MESSAGE = struct_COPYFILE2_MESSAGE;
pub const PCOPYFILE2_PROGRESS_ROUTINE = ?extern fn(?&const COPYFILE2_MESSAGE, PVOID) -> COPYFILE2_MESSAGE_ACTION;
pub const struct_COPYFILE2_EXTENDED_PARAMETERS = extern struct {
dwSize: DWORD,
dwCopyFlags: DWORD,
pfCancel: ?&BOOL,
pProgressRoutine: PCOPYFILE2_PROGRESS_ROUTINE,
pvCallbackContext: PVOID,
};
pub const COPYFILE2_EXTENDED_PARAMETERS = struct_COPYFILE2_EXTENDED_PARAMETERS;
pub extern fn CopyFile2(pwszExistingFileName: PCWSTR, pwszNewFileName: PCWSTR, pExtendedParameters: ?&COPYFILE2_EXTENDED_PARAMETERS) -> HRESULT;
pub extern fn MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL;
pub extern fn MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL;
pub extern fn MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: DWORD) -> BOOL;
pub extern fn MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: DWORD) -> BOOL;
pub extern fn ReplaceFileA(lpReplacedFileName: LPCSTR, lpReplacementFileName: LPCSTR, lpBackupFileName: LPCSTR, dwReplaceFlags: DWORD, lpExclude: LPVOID, lpReserved: LPVOID) -> BOOL;
pub extern fn ReplaceFileW(lpReplacedFileName: LPCWSTR, lpReplacementFileName: LPCWSTR, lpBackupFileName: LPCWSTR, dwReplaceFlags: DWORD, lpExclude: LPVOID, lpReserved: LPVOID) -> BOOL;
pub extern fn CreateHardLinkA(lpFileName: LPCSTR, lpExistingFileName: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> BOOL;
pub extern fn CreateHardLinkW(lpFileName: LPCWSTR, lpExistingFileName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> BOOL;
pub extern fn CreateHardLinkTransactedA(lpFileName: LPCSTR, lpExistingFileName: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, hTransaction: HANDLE) -> BOOL;
pub extern fn CreateHardLinkTransactedW(lpFileName: LPCWSTR, lpExistingFileName: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, hTransaction: HANDLE) -> BOOL;
pub const FindStreamInfoStandard = enum__STREAM_INFO_LEVELS.FindStreamInfoStandard;
pub const FindStreamInfoMaxInfoLevel = enum__STREAM_INFO_LEVELS.FindStreamInfoMaxInfoLevel;
pub const enum__STREAM_INFO_LEVELS = extern enum {
FindStreamInfoStandard,
FindStreamInfoMaxInfoLevel,
};
pub const STREAM_INFO_LEVELS = enum__STREAM_INFO_LEVELS;
pub const struct__WIN32_FIND_STREAM_DATA = @OpaqueType();
pub const WIN32_FIND_STREAM_DATA = struct__WIN32_FIND_STREAM_DATA;
pub const PWIN32_FIND_STREAM_DATA = ?&struct__WIN32_FIND_STREAM_DATA;
pub extern fn FindFirstStreamW(lpFileName: LPCWSTR, InfoLevel: STREAM_INFO_LEVELS, lpFindStreamData: LPVOID, dwFlags: DWORD) -> HANDLE;
pub extern fn FindFirstStreamTransactedW(lpFileName: LPCWSTR, InfoLevel: STREAM_INFO_LEVELS, lpFindStreamData: LPVOID, dwFlags: DWORD, hTransaction: HANDLE) -> HANDLE;
pub extern fn FindNextStreamW(hFindStream: HANDLE, lpFindStreamData: LPVOID) -> BOOL;
pub extern fn FindFirstFileNameW(lpFileName: LPCWSTR, dwFlags: DWORD, StringLength: LPDWORD, LinkName: PWSTR) -> HANDLE;
pub extern fn FindNextFileNameW(hFindStream: HANDLE, StringLength: LPDWORD, LinkName: PWSTR) -> BOOL;
pub extern fn FindFirstFileNameTransactedW(lpFileName: LPCWSTR, dwFlags: DWORD, StringLength: LPDWORD, LinkName: PWSTR, hTransaction: HANDLE) -> HANDLE;
pub extern fn CreateNamedPipeA(lpName: LPCSTR, dwOpenMode: DWORD, dwPipeMode: DWORD, nMaxInstances: DWORD, nOutBufferSize: DWORD, nInBufferSize: DWORD, nDefaultTimeOut: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> HANDLE;
pub extern fn GetNamedPipeHandleStateA(hNamedPipe: HANDLE, lpState: LPDWORD, lpCurInstances: LPDWORD, lpMaxCollectionCount: LPDWORD, lpCollectDataTimeout: LPDWORD, lpUserName: LPSTR, nMaxUserNameSize: DWORD) -> BOOL;
pub extern fn GetNamedPipeHandleStateW(hNamedPipe: HANDLE, lpState: LPDWORD, lpCurInstances: LPDWORD, lpMaxCollectionCount: LPDWORD, lpCollectDataTimeout: LPDWORD, lpUserName: LPWSTR, nMaxUserNameSize: DWORD) -> BOOL;
pub extern fn CallNamedPipeA(lpNamedPipeName: LPCSTR, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesRead: LPDWORD, nTimeOut: DWORD) -> BOOL;
pub extern fn CallNamedPipeW(lpNamedPipeName: LPCWSTR, lpInBuffer: LPVOID, nInBufferSize: DWORD, lpOutBuffer: LPVOID, nOutBufferSize: DWORD, lpBytesRead: LPDWORD, nTimeOut: DWORD) -> BOOL;
pub extern fn WaitNamedPipeA(lpNamedPipeName: LPCSTR, nTimeOut: DWORD) -> BOOL;
pub extern fn GetNamedPipeClientComputerNameA(Pipe: HANDLE, ClientComputerName: LPSTR, ClientComputerNameLength: ULONG) -> BOOL;
pub extern fn GetNamedPipeClientProcessId(Pipe: HANDLE, ClientProcessId: PULONG) -> BOOL;
pub extern fn GetNamedPipeClientSessionId(Pipe: HANDLE, ClientSessionId: PULONG) -> BOOL;
pub extern fn GetNamedPipeServerProcessId(Pipe: HANDLE, ServerProcessId: PULONG) -> BOOL;
pub extern fn GetNamedPipeServerSessionId(Pipe: HANDLE, ServerSessionId: PULONG) -> BOOL;
pub extern fn SetVolumeLabelA(lpRootPathName: LPCSTR, lpVolumeName: LPCSTR) -> BOOL;
pub extern fn SetVolumeLabelW(lpRootPathName: LPCWSTR, lpVolumeName: LPCWSTR) -> BOOL;
pub extern fn SetFileApisToOEM();
pub extern fn SetFileApisToANSI();
pub extern fn AreFileApisANSI() -> BOOL;
pub extern fn GetVolumeInformationA(lpRootPathName: LPCSTR, lpVolumeNameBuffer: LPSTR, nVolumeNameSize: DWORD, lpVolumeSerialNumber: LPDWORD, lpMaximumComponentLength: LPDWORD, lpFileSystemFlags: LPDWORD, lpFileSystemNameBuffer: LPSTR, nFileSystemNameSize: DWORD) -> BOOL;
pub extern fn SetFileBandwidthReservation(hFile: HANDLE, nPeriodMilliseconds: DWORD, nBytesPerPeriod: DWORD, bDiscardable: BOOL, lpTransferSize: LPDWORD, lpNumOutstandingRequests: LPDWORD) -> BOOL;
pub extern fn GetFileBandwidthReservation(hFile: HANDLE, lpPeriodMilliseconds: LPDWORD, lpBytesPerPeriod: LPDWORD, pDiscardable: LPBOOL, lpTransferSize: LPDWORD, lpNumOutstandingRequests: LPDWORD) -> BOOL;
pub extern fn ClearEventLogA(hEventLog: HANDLE, lpBackupFileName: LPCSTR) -> BOOL;
pub extern fn ClearEventLogW(hEventLog: HANDLE, lpBackupFileName: LPCWSTR) -> BOOL;
pub extern fn BackupEventLogA(hEventLog: HANDLE, lpBackupFileName: LPCSTR) -> BOOL;
pub extern fn BackupEventLogW(hEventLog: HANDLE, lpBackupFileName: LPCWSTR) -> BOOL;
pub extern fn CloseEventLog(hEventLog: HANDLE) -> BOOL;
pub extern fn DeregisterEventSource(hEventLog: HANDLE) -> BOOL;
pub extern fn NotifyChangeEventLog(hEventLog: HANDLE, hEvent: HANDLE) -> BOOL;
pub extern fn GetNumberOfEventLogRecords(hEventLog: HANDLE, NumberOfRecords: PDWORD) -> BOOL;
pub extern fn GetOldestEventLogRecord(hEventLog: HANDLE, OldestRecord: PDWORD) -> BOOL;
pub extern fn OpenEventLogA(lpUNCServerName: LPCSTR, lpSourceName: LPCSTR) -> HANDLE;
pub extern fn OpenEventLogW(lpUNCServerName: LPCWSTR, lpSourceName: LPCWSTR) -> HANDLE;
pub extern fn RegisterEventSourceA(lpUNCServerName: LPCSTR, lpSourceName: LPCSTR) -> HANDLE;
pub extern fn RegisterEventSourceW(lpUNCServerName: LPCWSTR, lpSourceName: LPCWSTR) -> HANDLE;
pub extern fn OpenBackupEventLogA(lpUNCServerName: LPCSTR, lpFileName: LPCSTR) -> HANDLE;
pub extern fn OpenBackupEventLogW(lpUNCServerName: LPCWSTR, lpFileName: LPCWSTR) -> HANDLE;
pub extern fn ReadEventLogA(hEventLog: HANDLE, dwReadFlags: DWORD, dwRecordOffset: DWORD, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, pnBytesRead: ?&DWORD, pnMinNumberOfBytesNeeded: ?&DWORD) -> BOOL;
pub extern fn ReadEventLogW(hEventLog: HANDLE, dwReadFlags: DWORD, dwRecordOffset: DWORD, lpBuffer: LPVOID, nNumberOfBytesToRead: DWORD, pnBytesRead: ?&DWORD, pnMinNumberOfBytesNeeded: ?&DWORD) -> BOOL;
pub extern fn ReportEventA(hEventLog: HANDLE, wType: WORD, wCategory: WORD, dwEventID: DWORD, lpUserSid: PSID, wNumStrings: WORD, dwDataSize: DWORD, lpStrings: ?&LPCSTR, lpRawData: LPVOID) -> BOOL;
pub extern fn ReportEventW(hEventLog: HANDLE, wType: WORD, wCategory: WORD, dwEventID: DWORD, lpUserSid: PSID, wNumStrings: WORD, dwDataSize: DWORD, lpStrings: ?&LPCWSTR, lpRawData: LPVOID) -> BOOL;
pub const struct__EVENTLOG_FULL_INFORMATION = extern struct {
dwFull: DWORD,
};
pub const EVENTLOG_FULL_INFORMATION = struct__EVENTLOG_FULL_INFORMATION;
pub const LPEVENTLOG_FULL_INFORMATION = ?&struct__EVENTLOG_FULL_INFORMATION;
pub extern fn GetEventLogInformation(hEventLog: HANDLE, dwInfoLevel: DWORD, lpBuffer: LPVOID, cbBufSize: DWORD, pcbBytesNeeded: LPDWORD) -> BOOL;
pub const OPERATION_ID = ULONG;
pub const struct__OPERATION_START_PARAMETERS = extern struct {
Version: ULONG,
OperationId: OPERATION_ID,
Flags: ULONG,
};
pub const OPERATION_START_PARAMETERS = struct__OPERATION_START_PARAMETERS;
pub const POPERATION_START_PARAMETERS = ?&struct__OPERATION_START_PARAMETERS;
pub const struct__OPERATION_END_PARAMETERS = extern struct {
Version: ULONG,
OperationId: OPERATION_ID,
Flags: ULONG,
};
pub const OPERATION_END_PARAMETERS = struct__OPERATION_END_PARAMETERS;
pub const POPERATION_END_PARAMETERS = ?&struct__OPERATION_END_PARAMETERS;
pub extern fn OperationStart(OperationStartParams: ?&OPERATION_START_PARAMETERS) -> BOOL;
pub extern fn OperationEnd(OperationEndParams: ?&OPERATION_END_PARAMETERS) -> BOOL;
pub extern fn AccessCheckAndAuditAlarmA(SubsystemName: LPCSTR, HandleId: LPVOID, ObjectTypeName: LPSTR, ObjectName: LPSTR, SecurityDescriptor: PSECURITY_DESCRIPTOR, DesiredAccess: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: BOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL) -> BOOL;
pub extern fn AccessCheckByTypeAndAuditAlarmA(SubsystemName: LPCSTR, HandleId: LPVOID, ObjectTypeName: LPCSTR, ObjectName: LPCSTR, SecurityDescriptor: PSECURITY_DESCRIPTOR, PrincipalSelfSid: PSID, DesiredAccess: DWORD, AuditType: AUDIT_EVENT_TYPE, Flags: DWORD, ObjectTypeList: POBJECT_TYPE_LIST, ObjectTypeListLength: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: BOOL, GrantedAccess: LPDWORD, AccessStatus: LPBOOL, pfGenerateOnClose: LPBOOL) -> BOOL;
pub extern fn AccessCheckByTypeResultListAndAuditAlarmA(SubsystemName: LPCSTR, HandleId: LPVOID, ObjectTypeName: LPCSTR, ObjectName: LPCSTR, SecurityDescriptor: PSECURITY_DESCRIPTOR, PrincipalSelfSid: PSID, DesiredAccess: DWORD, AuditType: AUDIT_EVENT_TYPE, Flags: DWORD, ObjectTypeList: POBJECT_TYPE_LIST, ObjectTypeListLength: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: BOOL, GrantedAccess: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL) -> BOOL;
pub extern fn AccessCheckByTypeResultListAndAuditAlarmByHandleA(SubsystemName: LPCSTR, HandleId: LPVOID, ClientToken: HANDLE, ObjectTypeName: LPCSTR, ObjectName: LPCSTR, SecurityDescriptor: PSECURITY_DESCRIPTOR, PrincipalSelfSid: PSID, DesiredAccess: DWORD, AuditType: AUDIT_EVENT_TYPE, Flags: DWORD, ObjectTypeList: POBJECT_TYPE_LIST, ObjectTypeListLength: DWORD, GenericMapping: PGENERIC_MAPPING, ObjectCreation: BOOL, GrantedAccess: LPDWORD, AccessStatusList: LPDWORD, pfGenerateOnClose: LPBOOL) -> BOOL;
pub extern fn ObjectOpenAuditAlarmA(SubsystemName: LPCSTR, HandleId: LPVOID, ObjectTypeName: LPSTR, ObjectName: LPSTR, pSecurityDescriptor: PSECURITY_DESCRIPTOR, ClientToken: HANDLE, DesiredAccess: DWORD, GrantedAccess: DWORD, Privileges: PPRIVILEGE_SET, ObjectCreation: BOOL, AccessGranted: BOOL, GenerateOnClose: LPBOOL) -> BOOL;
pub extern fn ObjectPrivilegeAuditAlarmA(SubsystemName: LPCSTR, HandleId: LPVOID, ClientToken: HANDLE, DesiredAccess: DWORD, Privileges: PPRIVILEGE_SET, AccessGranted: BOOL) -> BOOL;
pub extern fn ObjectCloseAuditAlarmA(SubsystemName: LPCSTR, HandleId: LPVOID, GenerateOnClose: BOOL) -> BOOL;
pub extern fn ObjectDeleteAuditAlarmA(SubsystemName: LPCSTR, HandleId: LPVOID, GenerateOnClose: BOOL) -> BOOL;
pub extern fn PrivilegedServiceAuditAlarmA(SubsystemName: LPCSTR, ServiceName: LPCSTR, ClientToken: HANDLE, Privileges: PPRIVILEGE_SET, AccessGranted: BOOL) -> BOOL;
pub extern fn AddConditionalAce(pAcl: PACL, dwAceRevision: DWORD, AceFlags: DWORD, AceType: UCHAR, AccessMask: DWORD, pSid: PSID, ConditionStr: PWCHAR, ReturnLength: ?&DWORD) -> BOOL;
pub extern fn SetFileSecurityA(lpFileName: LPCSTR, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR) -> BOOL;
pub extern fn GetFileSecurityA(lpFileName: LPCSTR, RequestedInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD) -> BOOL;
pub extern fn ReadDirectoryChangesW(hDirectory: HANDLE, lpBuffer: LPVOID, nBufferLength: DWORD, bWatchSubtree: BOOL, dwNotifyFilter: DWORD, lpBytesReturned: LPDWORD, lpOverlapped: LPOVERLAPPED, lpCompletionRoutine: LPOVERLAPPED_COMPLETION_ROUTINE) -> BOOL;
pub extern fn MapViewOfFileExNuma(hFileMappingObject: HANDLE, dwDesiredAccess: DWORD, dwFileOffsetHigh: DWORD, dwFileOffsetLow: DWORD, dwNumberOfBytesToMap: SIZE_T, lpBaseAddress: LPVOID, nndPreferred: DWORD) -> LPVOID;
pub extern fn IsBadReadPtr(lp: ?&const c_void, ucb: UINT_PTR) -> BOOL;
pub extern fn IsBadWritePtr(lp: LPVOID, ucb: UINT_PTR) -> BOOL;
pub extern fn IsBadHugeReadPtr(lp: ?&const c_void, ucb: UINT_PTR) -> BOOL;
pub extern fn IsBadHugeWritePtr(lp: LPVOID, ucb: UINT_PTR) -> BOOL;
pub extern fn IsBadStringPtrA(lpsz: LPCSTR, ucchMax: UINT_PTR) -> BOOL;
pub extern fn IsBadStringPtrW(lpsz: LPCWSTR, ucchMax: UINT_PTR) -> BOOL;
pub extern fn LookupAccountSidA(lpSystemName: LPCSTR, Sid: PSID, Name: LPSTR, cchName: LPDWORD, ReferencedDomainName: LPSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE) -> BOOL;
pub extern fn LookupAccountSidW(lpSystemName: LPCWSTR, Sid: PSID, Name: LPWSTR, cchName: LPDWORD, ReferencedDomainName: LPWSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE) -> BOOL;
pub extern fn LookupAccountNameA(lpSystemName: LPCSTR, lpAccountName: LPCSTR, Sid: PSID, cbSid: LPDWORD, ReferencedDomainName: LPSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE) -> BOOL;
pub extern fn LookupAccountNameW(lpSystemName: LPCWSTR, lpAccountName: LPCWSTR, Sid: PSID, cbSid: LPDWORD, ReferencedDomainName: LPWSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE) -> BOOL;
pub extern fn LookupAccountNameLocalA(lpAccountName: LPCSTR, Sid: PSID, cbSid: LPDWORD, ReferencedDomainName: LPSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE) -> BOOL;
pub extern fn LookupAccountNameLocalW(lpAccountName: LPCWSTR, Sid: PSID, cbSid: LPDWORD, ReferencedDomainName: LPWSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE) -> BOOL;
pub extern fn LookupAccountSidLocalA(Sid: PSID, Name: LPSTR, cchName: LPDWORD, ReferencedDomainName: LPSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE) -> BOOL;
pub extern fn LookupAccountSidLocalW(Sid: PSID, Name: LPWSTR, cchName: LPDWORD, ReferencedDomainName: LPWSTR, cchReferencedDomainName: LPDWORD, peUse: PSID_NAME_USE) -> BOOL;
pub extern fn LookupPrivilegeValueA(lpSystemName: LPCSTR, lpName: LPCSTR, lpLuid: PLUID) -> BOOL;
pub extern fn LookupPrivilegeValueW(lpSystemName: LPCWSTR, lpName: LPCWSTR, lpLuid: PLUID) -> BOOL;
pub extern fn LookupPrivilegeNameA(lpSystemName: LPCSTR, lpLuid: PLUID, lpName: LPSTR, cchName: LPDWORD) -> BOOL;
pub extern fn LookupPrivilegeNameW(lpSystemName: LPCWSTR, lpLuid: PLUID, lpName: LPWSTR, cchName: LPDWORD) -> BOOL;
pub extern fn LookupPrivilegeDisplayNameA(lpSystemName: LPCSTR, lpName: LPCSTR, lpDisplayName: LPSTR, cchDisplayName: LPDWORD, lpLanguageId: LPDWORD) -> BOOL;
pub extern fn LookupPrivilegeDisplayNameW(lpSystemName: LPCWSTR, lpName: LPCWSTR, lpDisplayName: LPWSTR, cchDisplayName: LPDWORD, lpLanguageId: LPDWORD) -> BOOL;
pub extern fn BuildCommDCBA(lpDef: LPCSTR, lpDCB: LPDCB) -> BOOL;
pub extern fn BuildCommDCBW(lpDef: LPCWSTR, lpDCB: LPDCB) -> BOOL;
pub extern fn BuildCommDCBAndTimeoutsA(lpDef: LPCSTR, lpDCB: LPDCB, lpCommTimeouts: LPCOMMTIMEOUTS) -> BOOL;
pub extern fn BuildCommDCBAndTimeoutsW(lpDef: LPCWSTR, lpDCB: LPDCB, lpCommTimeouts: LPCOMMTIMEOUTS) -> BOOL;
pub extern fn CommConfigDialogA(lpszName: LPCSTR, hWnd: HWND, lpCC: LPCOMMCONFIG) -> BOOL;
pub extern fn CommConfigDialogW(lpszName: LPCWSTR, hWnd: HWND, lpCC: LPCOMMCONFIG) -> BOOL;
pub extern fn GetDefaultCommConfigA(lpszName: LPCSTR, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD) -> BOOL;
pub extern fn GetDefaultCommConfigW(lpszName: LPCWSTR, lpCC: LPCOMMCONFIG, lpdwSize: LPDWORD) -> BOOL;
pub extern fn SetDefaultCommConfigA(lpszName: LPCSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD) -> BOOL;
pub extern fn SetDefaultCommConfigW(lpszName: LPCWSTR, lpCC: LPCOMMCONFIG, dwSize: DWORD) -> BOOL;
pub extern fn GetComputerNameA(lpBuffer: LPSTR, nSize: LPDWORD) -> BOOL;
pub extern fn GetComputerNameW(lpBuffer: LPWSTR, nSize: LPDWORD) -> BOOL;
pub extern fn SetComputerNameA(lpComputerName: LPCSTR) -> BOOL;
pub extern fn SetComputerNameW(lpComputerName: LPCWSTR) -> BOOL;
pub extern fn SetComputerNameExA(NameType: COMPUTER_NAME_FORMAT, lpBuffer: LPCSTR) -> BOOL;
pub extern fn DnsHostnameToComputerNameA(Hostname: LPCSTR, ComputerName: LPSTR, nSize: LPDWORD) -> BOOL;
pub extern fn DnsHostnameToComputerNameW(Hostname: LPCWSTR, ComputerName: LPWSTR, nSize: LPDWORD) -> BOOL;
pub extern fn GetUserNameA(lpBuffer: LPSTR, pcbBuffer: LPDWORD) -> BOOL;
pub extern fn GetUserNameW(lpBuffer: LPWSTR, pcbBuffer: LPDWORD) -> BOOL;
pub extern fn LogonUserA(lpszUsername: LPCSTR, lpszDomain: LPCSTR, lpszPassword: LPCSTR, dwLogonType: DWORD, dwLogonProvider: DWORD, phToken: PHANDLE) -> BOOL;
pub extern fn LogonUserW(lpszUsername: LPCWSTR, lpszDomain: LPCWSTR, lpszPassword: LPCWSTR, dwLogonType: DWORD, dwLogonProvider: DWORD, phToken: PHANDLE) -> BOOL;
pub extern fn LogonUserExA(lpszUsername: LPCSTR, lpszDomain: LPCSTR, lpszPassword: LPCSTR, dwLogonType: DWORD, dwLogonProvider: DWORD, phToken: PHANDLE, ppLogonSid: ?&PSID, ppProfileBuffer: ?&PVOID, pdwProfileLength: LPDWORD, pQuotaLimits: PQUOTA_LIMITS) -> BOOL;
pub extern fn LogonUserExW(lpszUsername: LPCWSTR, lpszDomain: LPCWSTR, lpszPassword: LPCWSTR, dwLogonType: DWORD, dwLogonProvider: DWORD, phToken: PHANDLE, ppLogonSid: ?&PSID, ppProfileBuffer: ?&PVOID, pdwProfileLength: LPDWORD, pQuotaLimits: PQUOTA_LIMITS) -> BOOL;
pub extern fn CreateProcessAsUserA(hToken: HANDLE, lpApplicationName: LPCSTR, lpCommandLine: LPSTR, lpProcessAttributes: LPSECURITY_ATTRIBUTES, lpThreadAttributes: LPSECURITY_ATTRIBUTES, bInheritHandles: BOOL, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCSTR, lpStartupInfo: LPSTARTUPINFOA, lpProcessInformation: LPPROCESS_INFORMATION) -> BOOL;
pub extern fn CreateProcessWithLogonW(lpUsername: LPCWSTR, lpDomain: LPCWSTR, lpPassword: LPCWSTR, dwLogonFlags: DWORD, lpApplicationName: LPCWSTR, lpCommandLine: LPWSTR, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCWSTR, lpStartupInfo: LPSTARTUPINFOW, lpProcessInformation: LPPROCESS_INFORMATION) -> BOOL;
pub extern fn CreateProcessWithTokenW(hToken: HANDLE, dwLogonFlags: DWORD, lpApplicationName: LPCWSTR, lpCommandLine: LPWSTR, dwCreationFlags: DWORD, lpEnvironment: LPVOID, lpCurrentDirectory: LPCWSTR, lpStartupInfo: LPSTARTUPINFOW, lpProcessInformation: LPPROCESS_INFORMATION) -> BOOL;
pub extern fn IsTokenUntrusted(TokenHandle: HANDLE) -> BOOL;
pub extern fn RegisterWaitForSingleObject(phNewWaitObject: PHANDLE, hObject: HANDLE, Callback: WAITORTIMERCALLBACK, Context: PVOID, dwMilliseconds: ULONG, dwFlags: ULONG) -> BOOL;
pub extern fn UnregisterWait(WaitHandle: HANDLE) -> BOOL;
pub extern fn BindIoCompletionCallback(FileHandle: HANDLE, Function: LPOVERLAPPED_COMPLETION_ROUTINE, Flags: ULONG) -> BOOL;
pub extern fn SetTimerQueueTimer(TimerQueue: HANDLE, Callback: WAITORTIMERCALLBACK, Parameter: PVOID, DueTime: DWORD, Period: DWORD, PreferIo: BOOL) -> HANDLE;
pub extern fn CancelTimerQueueTimer(TimerQueue: HANDLE, Timer: HANDLE) -> BOOL;
pub extern fn DeleteTimerQueue(TimerQueue: HANDLE) -> BOOL;
pub fn InitializeThreadpoolEnvironment(pcbe: PTP_CALLBACK_ENVIRON) {
TpInitializeCallbackEnviron(pcbe);
}
pub fn SetThreadpoolCallbackPool(pcbe: PTP_CALLBACK_ENVIRON, ptpp: PTP_POOL) {
TpSetCallbackThreadpool(pcbe, ptpp);
}
pub fn SetThreadpoolCallbackCleanupGroup(pcbe: PTP_CALLBACK_ENVIRON, ptpcg: PTP_CLEANUP_GROUP, pfng: PTP_CLEANUP_GROUP_CANCEL_CALLBACK) {
TpSetCallbackCleanupGroup(pcbe, ptpcg, pfng);
}
pub fn SetThreadpoolCallbackRunsLong(pcbe: PTP_CALLBACK_ENVIRON) {
TpSetCallbackLongFunction(pcbe);
}
pub fn SetThreadpoolCallbackLibrary(pcbe: PTP_CALLBACK_ENVIRON, mod: PVOID) {
TpSetCallbackRaceWithDll(pcbe, mod);
}
pub fn SetThreadpoolCallbackPriority(pcbe: PTP_CALLBACK_ENVIRON, Priority: TP_CALLBACK_PRIORITY) {
TpSetCallbackPriority(pcbe, Priority);
}
pub fn SetThreadpoolCallbackPersistent(pcbe: PTP_CALLBACK_ENVIRON) {
TpSetCallbackPersistent(pcbe);
}
pub fn DestroyThreadpoolEnvironment(pcbe: PTP_CALLBACK_ENVIRON) {
TpDestroyCallbackEnviron(pcbe);
}
pub extern fn CreatePrivateNamespaceA(lpPrivateNamespaceAttributes: LPSECURITY_ATTRIBUTES, lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCSTR) -> HANDLE;
pub extern fn OpenPrivateNamespaceA(lpBoundaryDescriptor: LPVOID, lpAliasPrefix: LPCSTR) -> HANDLE;
pub extern fn CreateBoundaryDescriptorA(Name: LPCSTR, Flags: ULONG) -> HANDLE;
pub extern fn AddIntegrityLabelToBoundaryDescriptor(BoundaryDescriptor: ?&HANDLE, IntegrityLabel: PSID) -> BOOL;
pub const struct_tagHW_PROFILE_INFOA = extern struct {
dwDockInfo: DWORD,
szHwProfileGuid: [39]CHAR,
szHwProfileName: [80]CHAR,
};
pub const HW_PROFILE_INFOA = struct_tagHW_PROFILE_INFOA;
pub const LPHW_PROFILE_INFOA = ?&struct_tagHW_PROFILE_INFOA;
pub const struct_tagHW_PROFILE_INFOW = extern struct {
dwDockInfo: DWORD,
szHwProfileGuid: [39]WCHAR,
szHwProfileName: [80]WCHAR,
};
pub const HW_PROFILE_INFOW = struct_tagHW_PROFILE_INFOW;
pub const LPHW_PROFILE_INFOW = ?&struct_tagHW_PROFILE_INFOW;
pub const HW_PROFILE_INFO = HW_PROFILE_INFOA;
pub const LPHW_PROFILE_INFO = LPHW_PROFILE_INFOA;
pub extern fn GetCurrentHwProfileA(lpHwProfileInfo: LPHW_PROFILE_INFOA) -> BOOL;
pub extern fn GetCurrentHwProfileW(lpHwProfileInfo: LPHW_PROFILE_INFOW) -> BOOL;
pub extern fn VerifyVersionInfoA(lpVersionInformation: LPOSVERSIONINFOEXA, dwTypeMask: DWORD, dwlConditionMask: DWORDLONG) -> BOOL;
pub extern fn VerifyVersionInfoW(lpVersionInformation: LPOSVERSIONINFOEXW, dwTypeMask: DWORD, dwlConditionMask: DWORDLONG) -> BOOL;
pub const struct__TIME_ZONE_INFORMATION = extern struct {
Bias: LONG,
StandardName: [32]WCHAR,
StandardDate: SYSTEMTIME,
StandardBias: LONG,
DaylightName: [32]WCHAR,
DaylightDate: SYSTEMTIME,
DaylightBias: LONG,
};
pub const TIME_ZONE_INFORMATION = struct__TIME_ZONE_INFORMATION;
pub const PTIME_ZONE_INFORMATION = ?&struct__TIME_ZONE_INFORMATION;
pub const LPTIME_ZONE_INFORMATION = ?&struct__TIME_ZONE_INFORMATION;
pub const struct__TIME_DYNAMIC_ZONE_INFORMATION = extern struct {
Bias: LONG,
StandardName: [32]WCHAR,
StandardDate: SYSTEMTIME,
StandardBias: LONG,
DaylightName: [32]WCHAR,
DaylightDate: SYSTEMTIME,
DaylightBias: LONG,
TimeZoneKeyName: [128]WCHAR,
DynamicDaylightTimeDisabled: BOOLEAN,
};
pub const DYNAMIC_TIME_ZONE_INFORMATION = struct__TIME_DYNAMIC_ZONE_INFORMATION;
pub const PDYNAMIC_TIME_ZONE_INFORMATION = ?&struct__TIME_DYNAMIC_ZONE_INFORMATION;
pub extern fn SystemTimeToTzSpecificLocalTime(lpTimeZoneInformation: ?&const TIME_ZONE_INFORMATION, lpUniversalTime: ?&const SYSTEMTIME, lpLocalTime: LPSYSTEMTIME) -> BOOL;
pub extern fn TzSpecificLocalTimeToSystemTime(lpTimeZoneInformation: ?&const TIME_ZONE_INFORMATION, lpLocalTime: ?&const SYSTEMTIME, lpUniversalTime: LPSYSTEMTIME) -> BOOL;
pub extern fn FileTimeToSystemTime(lpFileTime: ?&const FILETIME, lpSystemTime: LPSYSTEMTIME) -> BOOL;
pub extern fn SystemTimeToFileTime(lpSystemTime: ?&const SYSTEMTIME, lpFileTime: LPFILETIME) -> BOOL;
pub extern fn GetTimeZoneInformation(lpTimeZoneInformation: LPTIME_ZONE_INFORMATION) -> DWORD;
pub extern fn SetTimeZoneInformation(lpTimeZoneInformation: ?&const TIME_ZONE_INFORMATION) -> BOOL;
pub extern fn SetDynamicTimeZoneInformation(lpTimeZoneInformation: ?&const DYNAMIC_TIME_ZONE_INFORMATION) -> BOOL;
pub extern fn GetDynamicTimeZoneInformation(pTimeZoneInformation: PDYNAMIC_TIME_ZONE_INFORMATION) -> DWORD;
pub extern fn GetTimeZoneInformationForYear(wYear: USHORT, pdtzi: PDYNAMIC_TIME_ZONE_INFORMATION, ptzi: LPTIME_ZONE_INFORMATION) -> BOOL;
pub extern fn EnumDynamicTimeZoneInformation(dwIndex: DWORD, lpTimeZoneInformation: PDYNAMIC_TIME_ZONE_INFORMATION) -> DWORD;
pub extern fn GetDynamicTimeZoneInformationEffectiveYears(lpTimeZoneInformation: PDYNAMIC_TIME_ZONE_INFORMATION, FirstYear: LPDWORD, LastYear: LPDWORD) -> DWORD;
pub extern fn SystemTimeToTzSpecificLocalTimeEx(lpTimeZoneInformation: ?&const DYNAMIC_TIME_ZONE_INFORMATION, lpUniversalTime: ?&const SYSTEMTIME, lpLocalTime: LPSYSTEMTIME) -> BOOL;
pub extern fn TzSpecificLocalTimeToSystemTimeEx(lpTimeZoneInformation: ?&const DYNAMIC_TIME_ZONE_INFORMATION, lpLocalTime: ?&const SYSTEMTIME, lpUniversalTime: LPSYSTEMTIME) -> BOOL;
pub const struct__SYSTEM_POWER_STATUS = extern struct {
ACLineStatus: BYTE,
BatteryFlag: BYTE,
BatteryLifePercent: BYTE,
Reserved1: BYTE,
BatteryLifeTime: DWORD,
BatteryFullLifeTime: DWORD,
};
pub const SYSTEM_POWER_STATUS = struct__SYSTEM_POWER_STATUS;
pub const LPSYSTEM_POWER_STATUS = ?&struct__SYSTEM_POWER_STATUS;
pub extern fn GetSystemPowerStatus(lpSystemPowerStatus: LPSYSTEM_POWER_STATUS) -> BOOL;
pub extern fn SetSystemPowerState(fSuspend: BOOL, fForce: BOOL) -> BOOL;
pub extern fn MapUserPhysicalPagesScatter(VirtualAddresses: ?&PVOID, NumberOfPages: ULONG_PTR, PageArray: PULONG_PTR) -> BOOL;
pub extern fn CreateJobObjectA(lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCSTR) -> HANDLE;
pub extern fn CreateJobObjectW(lpJobAttributes: LPSECURITY_ATTRIBUTES, lpName: LPCWSTR) -> HANDLE;
pub extern fn OpenJobObjectA(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE;
pub extern fn OpenJobObjectW(dwDesiredAccess: DWORD, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE;
pub extern fn AssignProcessToJobObject(hJob: HANDLE, hProcess: HANDLE) -> BOOL;
pub extern fn TerminateJobObject(hJob: HANDLE, uExitCode: UINT) -> BOOL;
pub extern fn QueryInformationJobObject(hJob: HANDLE, JobObjectInformationClass: JOBOBJECTINFOCLASS, lpJobObjectInformation: LPVOID, cbJobObjectInformationLength: DWORD, lpReturnLength: LPDWORD) -> BOOL;
pub extern fn SetInformationJobObject(hJob: HANDLE, JobObjectInformationClass: JOBOBJECTINFOCLASS, lpJobObjectInformation: LPVOID, cbJobObjectInformationLength: DWORD) -> BOOL;
pub extern fn CreateJobSet(NumJob: ULONG, UserJobSet: PJOB_SET_ARRAY, Flags: ULONG) -> BOOL;
pub extern fn FindFirstVolumeA(lpszVolumeName: LPSTR, cchBufferLength: DWORD) -> HANDLE;
pub extern fn FindNextVolumeA(hFindVolume: HANDLE, lpszVolumeName: LPSTR, cchBufferLength: DWORD) -> BOOL;
pub extern fn FindFirstVolumeMountPointA(lpszRootPathName: LPCSTR, lpszVolumeMountPoint: LPSTR, cchBufferLength: DWORD) -> HANDLE;
pub extern fn FindFirstVolumeMountPointW(lpszRootPathName: LPCWSTR, lpszVolumeMountPoint: LPWSTR, cchBufferLength: DWORD) -> HANDLE;
pub extern fn FindNextVolumeMountPointA(hFindVolumeMountPoint: HANDLE, lpszVolumeMountPoint: LPSTR, cchBufferLength: DWORD) -> BOOL;
pub extern fn FindNextVolumeMountPointW(hFindVolumeMountPoint: HANDLE, lpszVolumeMountPoint: LPWSTR, cchBufferLength: DWORD) -> BOOL;
pub extern fn FindVolumeMountPointClose(hFindVolumeMountPoint: HANDLE) -> BOOL;
pub extern fn SetVolumeMountPointA(lpszVolumeMountPoint: LPCSTR, lpszVolumeName: LPCSTR) -> BOOL;
pub extern fn SetVolumeMountPointW(lpszVolumeMountPoint: LPCWSTR, lpszVolumeName: LPCWSTR) -> BOOL;
pub extern fn DeleteVolumeMountPointA(lpszVolumeMountPoint: LPCSTR) -> BOOL;
pub extern fn GetVolumeNameForVolumeMountPointA(lpszVolumeMountPoint: LPCSTR, lpszVolumeName: LPSTR, cchBufferLength: DWORD) -> BOOL;
pub extern fn GetVolumePathNameA(lpszFileName: LPCSTR, lpszVolumePathName: LPSTR, cchBufferLength: DWORD) -> BOOL;
pub extern fn GetVolumePathNamesForVolumeNameA(lpszVolumeName: LPCSTR, lpszVolumePathNames: LPCH, cchBufferLength: DWORD, lpcchReturnLength: PDWORD) -> BOOL;
pub const struct_tagACTCTXA = extern struct {
cbSize: ULONG,
dwFlags: DWORD,
lpSource: LPCSTR,
wProcessorArchitecture: USHORT,
wLangId: LANGID,
lpAssemblyDirectory: LPCSTR,
lpResourceName: LPCSTR,
lpApplicationName: LPCSTR,
hModule: HMODULE,
};
pub const ACTCTXA = struct_tagACTCTXA;
pub const PACTCTXA = ?&struct_tagACTCTXA;
pub const struct_tagACTCTXW = extern struct {
cbSize: ULONG,
dwFlags: DWORD,
lpSource: LPCWSTR,
wProcessorArchitecture: USHORT,
wLangId: LANGID,
lpAssemblyDirectory: LPCWSTR,
lpResourceName: LPCWSTR,
lpApplicationName: LPCWSTR,
hModule: HMODULE,
};
pub const ACTCTXW = struct_tagACTCTXW;
pub const PACTCTXW = ?&struct_tagACTCTXW;
pub const ACTCTX = ACTCTXA;
pub const PACTCTX = PACTCTXA;
pub const PCACTCTXA = ?&const ACTCTXA;
pub const PCACTCTXW = ?&const ACTCTXW;
pub const PCACTCTX = PCACTCTXA;
pub extern fn CreateActCtxA(pActCtx: PCACTCTXA) -> HANDLE;
pub extern fn CreateActCtxW(pActCtx: PCACTCTXW) -> HANDLE;
pub extern fn AddRefActCtx(hActCtx: HANDLE);
pub extern fn ReleaseActCtx(hActCtx: HANDLE);
pub extern fn ZombifyActCtx(hActCtx: HANDLE) -> BOOL;
pub extern fn ActivateActCtx(hActCtx: HANDLE, lpCookie: ?&ULONG_PTR) -> BOOL;
pub extern fn DeactivateActCtx(dwFlags: DWORD, ulCookie: ULONG_PTR) -> BOOL;
pub extern fn GetCurrentActCtx(lphActCtx: ?&HANDLE) -> BOOL;
pub const struct_tagACTCTX_SECTION_KEYED_DATA_2600 = extern struct {
cbSize: ULONG,
ulDataFormatVersion: ULONG,
lpData: PVOID,
ulLength: ULONG,
lpSectionGlobalData: PVOID,
ulSectionGlobalDataLength: ULONG,
lpSectionBase: PVOID,
ulSectionTotalLength: ULONG,
hActCtx: HANDLE,
ulAssemblyRosterIndex: ULONG,
};
pub const ACTCTX_SECTION_KEYED_DATA_2600 = struct_tagACTCTX_SECTION_KEYED_DATA_2600;
pub const PACTCTX_SECTION_KEYED_DATA_2600 = ?&struct_tagACTCTX_SECTION_KEYED_DATA_2600;
pub const PCACTCTX_SECTION_KEYED_DATA_2600 = ?&const ACTCTX_SECTION_KEYED_DATA_2600;
pub const struct_tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = extern struct {
lpInformation: PVOID,
lpSectionBase: PVOID,
ulSectionLength: ULONG,
lpSectionGlobalDataBase: PVOID,
ulSectionGlobalDataLength: ULONG,
};
pub const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = struct_tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
pub const PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = ?&struct_tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
pub const PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA = ?&const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
pub const struct_tagACTCTX_SECTION_KEYED_DATA = extern struct {
cbSize: ULONG,
ulDataFormatVersion: ULONG,
lpData: PVOID,
ulLength: ULONG,
lpSectionGlobalData: PVOID,
ulSectionGlobalDataLength: ULONG,
lpSectionBase: PVOID,
ulSectionTotalLength: ULONG,
hActCtx: HANDLE,
ulAssemblyRosterIndex: ULONG,
ulFlags: ULONG,
AssemblyMetadata: ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA,
};
pub const ACTCTX_SECTION_KEYED_DATA = struct_tagACTCTX_SECTION_KEYED_DATA;
pub const PACTCTX_SECTION_KEYED_DATA = ?&struct_tagACTCTX_SECTION_KEYED_DATA;
pub const PCACTCTX_SECTION_KEYED_DATA = ?&const ACTCTX_SECTION_KEYED_DATA;
pub extern fn FindActCtxSectionStringA(dwFlags: DWORD, lpExtensionGuid: ?&const GUID, ulSectionId: ULONG, lpStringToFind: LPCSTR, ReturnedData: PACTCTX_SECTION_KEYED_DATA) -> BOOL;
pub extern fn FindActCtxSectionStringW(dwFlags: DWORD, lpExtensionGuid: ?&const GUID, ulSectionId: ULONG, lpStringToFind: LPCWSTR, ReturnedData: PACTCTX_SECTION_KEYED_DATA) -> BOOL;
pub extern fn FindActCtxSectionGuid(dwFlags: DWORD, lpExtensionGuid: ?&const GUID, ulSectionId: ULONG, lpGuidToFind: ?&const GUID, ReturnedData: PACTCTX_SECTION_KEYED_DATA) -> BOOL;
pub const struct__ACTIVATION_CONTEXT_BASIC_INFORMATION = extern struct {
hActCtx: HANDLE,
dwFlags: DWORD,
};
pub const ACTIVATION_CONTEXT_BASIC_INFORMATION = struct__ACTIVATION_CONTEXT_BASIC_INFORMATION;
pub const PACTIVATION_CONTEXT_BASIC_INFORMATION = ?&struct__ACTIVATION_CONTEXT_BASIC_INFORMATION;
pub const PCACTIVATION_CONTEXT_BASIC_INFORMATION = ?&const struct__ACTIVATION_CONTEXT_BASIC_INFORMATION;
pub extern fn QueryActCtxW(dwFlags: DWORD, hActCtx: HANDLE, pvSubInstance: PVOID, ulInfoClass: ULONG, pvBuffer: PVOID, cbBuffer: SIZE_T, pcbWrittenOrRequired: ?&SIZE_T) -> BOOL;
pub const PQUERYACTCTXW_FUNC = ?extern fn(DWORD, HANDLE, PVOID, ULONG, PVOID, SIZE_T, ?&SIZE_T) -> BOOL;
pub extern fn WTSGetActiveConsoleSessionId() -> DWORD;
pub extern fn GetActiveProcessorGroupCount() -> WORD;
pub extern fn GetMaximumProcessorGroupCount() -> WORD;
pub extern fn GetActiveProcessorCount(GroupNumber: WORD) -> DWORD;
pub extern fn GetMaximumProcessorCount(GroupNumber: WORD) -> DWORD;
pub extern fn GetNumaProcessorNode(Processor: UCHAR, NodeNumber: PUCHAR) -> BOOL;
pub extern fn GetNumaNodeNumberFromHandle(hFile: HANDLE, NodeNumber: PUSHORT) -> BOOL;
pub extern fn GetNumaProcessorNodeEx(Processor: PPROCESSOR_NUMBER, NodeNumber: PUSHORT) -> BOOL;
pub extern fn GetNumaNodeProcessorMask(Node: UCHAR, ProcessorMask: PULONGLONG) -> BOOL;
pub extern fn GetNumaAvailableMemoryNode(Node: UCHAR, AvailableBytes: PULONGLONG) -> BOOL;
pub extern fn GetNumaAvailableMemoryNodeEx(Node: USHORT, AvailableBytes: PULONGLONG) -> BOOL;
pub extern fn GetNumaProximityNode(ProximityId: ULONG, NodeNumber: PUCHAR) -> BOOL;
pub extern fn GetNumaProximityNodeEx(ProximityId: ULONG, NodeNumber: PUSHORT) -> BOOL;
pub const APPLICATION_RECOVERY_CALLBACK = ?extern fn(PVOID) -> DWORD;
pub extern fn RegisterApplicationRecoveryCallback(pRecoveyCallback: APPLICATION_RECOVERY_CALLBACK, pvParameter: PVOID, dwPingInterval: DWORD, dwFlags: DWORD) -> HRESULT;
pub extern fn UnregisterApplicationRecoveryCallback() -> HRESULT;
pub extern fn RegisterApplicationRestart(pwzCommandline: PCWSTR, dwFlags: DWORD) -> HRESULT;
pub extern fn UnregisterApplicationRestart() -> HRESULT;
pub extern fn GetApplicationRecoveryCallback(hProcess: HANDLE, pRecoveryCallback: ?&APPLICATION_RECOVERY_CALLBACK, ppvParameter: ?&PVOID, pdwPingInterval: PDWORD, pdwFlags: PDWORD) -> HRESULT;
pub extern fn GetApplicationRestartSettings(hProcess: HANDLE, pwzCommandline: PWSTR, pcchSize: PDWORD, pdwFlags: PDWORD) -> HRESULT;
pub extern fn ApplicationRecoveryInProgress(pbCancelled: PBOOL) -> HRESULT;
pub extern fn ApplicationRecoveryFinished(bSuccess: BOOL);
pub const struct__FILE_BASIC_INFO = @OpaqueType();
pub const FILE_BASIC_INFO = struct__FILE_BASIC_INFO;
pub const PFILE_BASIC_INFO = ?&struct__FILE_BASIC_INFO;
pub const struct__FILE_STANDARD_INFO = @OpaqueType();
pub const FILE_STANDARD_INFO = struct__FILE_STANDARD_INFO;
pub const PFILE_STANDARD_INFO = ?&struct__FILE_STANDARD_INFO;
pub const struct__FILE_NAME_INFO = extern struct {
FileNameLength: DWORD,
FileName: [1]WCHAR,
};
pub const FILE_NAME_INFO = struct__FILE_NAME_INFO;
pub const PFILE_NAME_INFO = ?&struct__FILE_NAME_INFO;
pub const struct__FILE_RENAME_INFO = extern struct {
ReplaceIfExists: BOOLEAN,
RootDirectory: HANDLE,
FileNameLength: DWORD,
FileName: [1]WCHAR,
};
pub const FILE_RENAME_INFO = struct__FILE_RENAME_INFO;
pub const PFILE_RENAME_INFO = ?&struct__FILE_RENAME_INFO;
pub const struct__FILE_ALLOCATION_INFO = @OpaqueType();
pub const FILE_ALLOCATION_INFO = struct__FILE_ALLOCATION_INFO;
pub const PFILE_ALLOCATION_INFO = ?&struct__FILE_ALLOCATION_INFO;
pub const struct__FILE_END_OF_FILE_INFO = @OpaqueType();
pub const FILE_END_OF_FILE_INFO = struct__FILE_END_OF_FILE_INFO;
pub const PFILE_END_OF_FILE_INFO = ?&struct__FILE_END_OF_FILE_INFO;
pub const struct__FILE_STREAM_INFO = @OpaqueType();
pub const FILE_STREAM_INFO = struct__FILE_STREAM_INFO;
pub const PFILE_STREAM_INFO = ?&struct__FILE_STREAM_INFO;
pub const struct__FILE_COMPRESSION_INFO = @OpaqueType();
pub const FILE_COMPRESSION_INFO = struct__FILE_COMPRESSION_INFO;
pub const PFILE_COMPRESSION_INFO = ?&struct__FILE_COMPRESSION_INFO;
pub const struct__FILE_ATTRIBUTE_TAG_INFO = extern struct {
FileAttributes: DWORD,
ReparseTag: DWORD,
};
pub const FILE_ATTRIBUTE_TAG_INFO = struct__FILE_ATTRIBUTE_TAG_INFO;
pub const PFILE_ATTRIBUTE_TAG_INFO = ?&struct__FILE_ATTRIBUTE_TAG_INFO;
pub const struct__FILE_DISPOSITION_INFO = extern struct {
DeleteFileA: BOOLEAN,
};
pub const FILE_DISPOSITION_INFO = struct__FILE_DISPOSITION_INFO;
pub const PFILE_DISPOSITION_INFO = ?&struct__FILE_DISPOSITION_INFO;
pub const struct__FILE_ID_BOTH_DIR_INFO = @OpaqueType();
pub const FILE_ID_BOTH_DIR_INFO = struct__FILE_ID_BOTH_DIR_INFO;
pub const PFILE_ID_BOTH_DIR_INFO = ?&struct__FILE_ID_BOTH_DIR_INFO;
pub const struct__FILE_FULL_DIR_INFO = @OpaqueType();
pub const FILE_FULL_DIR_INFO = struct__FILE_FULL_DIR_INFO;
pub const PFILE_FULL_DIR_INFO = ?&struct__FILE_FULL_DIR_INFO;
pub const IoPriorityHintVeryLow: c_int = 0;
pub const IoPriorityHintLow: c_int = 1;
pub const IoPriorityHintNormal: c_int = 2;
pub const MaximumIoPriorityHintType: c_int = 3;
pub const enum__PRIORITY_HINT = c_int;
pub const IoPriorityHintVeryLow: c_int = 0;
pub const IoPriorityHintLow: c_int = 1;
pub const IoPriorityHintNormal: c_int = 2;
pub const MaximumIoPriorityHintType: c_int = 3;
pub const enum__PRIORITY_HINT = c_int;
pub const PRIORITY_HINT = enum__PRIORITY_HINT;
pub const struct__FILE_IO_PRIORITY_HINT_INFO = extern struct {
PriorityHint: PRIORITY_HINT,
};
pub const FILE_IO_PRIORITY_HINT_INFO = struct__FILE_IO_PRIORITY_HINT_INFO;
pub const PFILE_IO_PRIORITY_HINT_INFO = ?&struct__FILE_IO_PRIORITY_HINT_INFO;
pub const struct__FILE_ALIGNMENT_INFO = extern struct {
AlignmentRequirement: ULONG,
};
pub const FILE_ALIGNMENT_INFO = struct__FILE_ALIGNMENT_INFO;
pub const PFILE_ALIGNMENT_INFO = ?&struct__FILE_ALIGNMENT_INFO;
pub const struct__FILE_STORAGE_INFO = extern struct {
LogicalBytesPerSector: ULONG,
PhysicalBytesPerSectorForAtomicity: ULONG,
PhysicalBytesPerSectorForPerformance: ULONG,
FileSystemEffectivePhysicalBytesPerSectorForAtomicity: ULONG,
Flags: ULONG,
ByteOffsetForSectorAlignment: ULONG,
ByteOffsetForPartitionAlignment: ULONG,
};
pub const FILE_STORAGE_INFO = struct__FILE_STORAGE_INFO;
pub const PFILE_STORAGE_INFO = ?&struct__FILE_STORAGE_INFO;
pub const struct__FILE_ID_INFO = extern struct {
VolumeSerialNumber: ULONGLONG,
FileId: FILE_ID_128,
};
pub const FILE_ID_INFO = struct__FILE_ID_INFO;
pub const PFILE_ID_INFO = ?&struct__FILE_ID_INFO;
pub const struct__FILE_ID_EXTD_DIR_INFO = @OpaqueType();
pub const FILE_ID_EXTD_DIR_INFO = struct__FILE_ID_EXTD_DIR_INFO;
pub const PFILE_ID_EXTD_DIR_INFO = ?&struct__FILE_ID_EXTD_DIR_INFO;
pub const struct__FILE_REMOTE_PROTOCOL_INFO = @OpaqueType();
pub const FILE_REMOTE_PROTOCOL_INFO = struct__FILE_REMOTE_PROTOCOL_INFO;
pub const PFILE_REMOTE_PROTOCOL_INFO = ?&struct__FILE_REMOTE_PROTOCOL_INFO;
pub extern fn GetFileInformationByHandleEx(hFile: HANDLE, FileInformationClass: FILE_INFO_BY_HANDLE_CLASS, lpFileInformation: LPVOID, dwBufferSize: DWORD) -> BOOL;
pub const FileIdType = enum__FILE_ID_TYPE.FileIdType;
pub const ObjectIdType = enum__FILE_ID_TYPE.ObjectIdType;
pub const ExtendedFileIdType = enum__FILE_ID_TYPE.ExtendedFileIdType;
pub const MaximumFileIdType = enum__FILE_ID_TYPE.MaximumFileIdType;
pub const enum__FILE_ID_TYPE = extern enum {
FileIdType,
ObjectIdType,
ExtendedFileIdType,
MaximumFileIdType,
};
pub const FILE_ID_TYPE = enum__FILE_ID_TYPE;
pub const PFILE_ID_TYPE = ?&enum__FILE_ID_TYPE;
pub const struct_FILE_ID_DESCRIPTOR = @OpaqueType();
pub const FILE_ID_DESCRIPTOR = struct_FILE_ID_DESCRIPTOR;
pub const LPFILE_ID_DESCRIPTOR = ?&struct_FILE_ID_DESCRIPTOR;
pub extern fn OpenFileById(hVolumeHint: HANDLE, lpFileId: LPFILE_ID_DESCRIPTOR, dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, dwFlagsAndAttributes: DWORD) -> HANDLE;
pub extern fn CreateSymbolicLinkA(lpSymlinkFileName: LPCSTR, lpTargetFileName: LPCSTR, dwFlags: DWORD) -> BOOLEAN;
pub extern fn CreateSymbolicLinkW(lpSymlinkFileName: LPCWSTR, lpTargetFileName: LPCWSTR, dwFlags: DWORD) -> BOOLEAN;
pub extern fn CreateSymbolicLinkTransactedA(lpSymlinkFileName: LPCSTR, lpTargetFileName: LPCSTR, dwFlags: DWORD, hTransaction: HANDLE) -> BOOLEAN;
pub extern fn CreateSymbolicLinkTransactedW(lpSymlinkFileName: LPCWSTR, lpTargetFileName: LPCWSTR, dwFlags: DWORD, hTransaction: HANDLE) -> BOOLEAN;
pub extern fn QueryActCtxSettingsW(dwFlags: DWORD, hActCtx: HANDLE, settingsNameSpace: PCWSTR, settingName: PCWSTR, pvBuffer: PWSTR, dwBuffer: SIZE_T, pdwWrittenOrRequired: ?&SIZE_T) -> BOOL;
pub extern fn ReplacePartitionUnit(TargetPartition: PWSTR, SparePartition: PWSTR, Flags: ULONG) -> BOOL;
pub extern fn AddSecureMemoryCacheCallback(pfnCallBack: PSECURE_MEMORY_CACHE_CALLBACK) -> BOOL;
pub extern fn RemoveSecureMemoryCacheCallback(pfnCallBack: PSECURE_MEMORY_CACHE_CALLBACK) -> BOOL;
pub extern fn CopyContext(Destination: PCONTEXT, ContextFlags: DWORD, Source: PCONTEXT) -> BOOL;
pub extern fn InitializeContext(Buffer: PVOID, ContextFlags: DWORD, Context: ?&PCONTEXT, ContextLength: PDWORD) -> BOOL;
pub extern fn GetEnabledXStateFeatures() -> DWORD64;
pub extern fn GetXStateFeaturesMask(Context: PCONTEXT, FeatureMask: PDWORD64) -> BOOL;
pub extern fn LocateXStateFeature(Context: PCONTEXT, FeatureId: DWORD, Length: PDWORD) -> PVOID;
pub extern fn SetXStateFeaturesMask(Context: PCONTEXT, FeatureMask: DWORD64) -> BOOL;
pub extern fn EnableThreadProfiling(ThreadHandle: HANDLE, Flags: DWORD, HardwareCounters: DWORD64, PerformanceDataHandle: ?&HANDLE) -> DWORD;
pub extern fn DisableThreadProfiling(PerformanceDataHandle: HANDLE) -> DWORD;
pub extern fn QueryThreadProfiling(ThreadHandle: HANDLE, Enabled: PBOOLEAN) -> DWORD;
pub extern fn ReadThreadProfilingData(PerformanceDataHandle: HANDLE, Flags: DWORD, PerformanceData: PPERFORMANCE_DATA) -> DWORD;
pub const struct__DRAWPATRECT = extern struct {
ptPosition: POINT,
ptSize: POINT,
wStyle: WORD,
wPattern: WORD,
};
pub const DRAWPATRECT = struct__DRAWPATRECT;
pub const PDRAWPATRECT = ?&struct__DRAWPATRECT;
pub const struct__PSINJECTDATA = extern struct {
DataBytes: DWORD,
InjectionPoint: WORD,
PageNumber: WORD,
};
pub const PSINJECTDATA = struct__PSINJECTDATA;
pub const PPSINJECTDATA = ?&struct__PSINJECTDATA;
pub const struct__PSFEATURE_OUTPUT = extern struct {
bPageIndependent: BOOL,
bSetPageDevice: BOOL,
};
pub const PSFEATURE_OUTPUT = struct__PSFEATURE_OUTPUT;
pub const PPSFEATURE_OUTPUT = ?&struct__PSFEATURE_OUTPUT;
pub const struct__PSFEATURE_CUSTPAPER = extern struct {
lOrientation: LONG,
lWidth: LONG,
lHeight: LONG,
lWidthOffset: LONG,
lHeightOffset: LONG,
};
pub const PSFEATURE_CUSTPAPER = struct__PSFEATURE_CUSTPAPER;
pub const PPSFEATURE_CUSTPAPER = ?&struct__PSFEATURE_CUSTPAPER;
pub const struct_tagXFORM = extern struct {
eM11: FLOAT,
eM12: FLOAT,
eM21: FLOAT,
eM22: FLOAT,
eDx: FLOAT,
eDy: FLOAT,
};
pub const XFORM = struct_tagXFORM;
pub const PXFORM = ?&struct_tagXFORM;
pub const LPXFORM = ?&struct_tagXFORM;
pub const struct_tagBITMAP = extern struct {
bmType: LONG,
bmWidth: LONG,
bmHeight: LONG,
bmWidthBytes: LONG,
bmPlanes: WORD,
bmBitsPixel: WORD,
bmBits: LPVOID,
};
pub const BITMAP = struct_tagBITMAP;
pub const PBITMAP = ?&struct_tagBITMAP;
pub const NPBITMAP = ?&struct_tagBITMAP;
pub const LPBITMAP = ?&struct_tagBITMAP;
pub const struct_tagRGBTRIPLE = extern struct {
rgbtBlue: BYTE,
rgbtGreen: BYTE,
rgbtRed: BYTE,
};
pub const RGBTRIPLE = struct_tagRGBTRIPLE;
pub const PRGBTRIPLE = ?&struct_tagRGBTRIPLE;
pub const NPRGBTRIPLE = ?&struct_tagRGBTRIPLE;
pub const LPRGBTRIPLE = ?&struct_tagRGBTRIPLE;
pub const struct_tagRGBQUAD = extern struct {
rgbBlue: BYTE,
rgbGreen: BYTE,
rgbRed: BYTE,
rgbReserved: BYTE,
};
pub const RGBQUAD = struct_tagRGBQUAD;
pub const LPRGBQUAD = ?&RGBQUAD;
pub const LCSCSTYPE = LONG;
pub const LCSGAMUTMATCH = LONG;
pub const FXPT16DOT16 = c_long;
pub const LPFXPT16DOT16 = ?&c_long;
pub const FXPT2DOT30 = c_long;
pub const LPFXPT2DOT30 = ?&c_long;
pub const struct_tagCIEXYZ = extern struct {
ciexyzX: FXPT2DOT30,
ciexyzY: FXPT2DOT30,
ciexyzZ: FXPT2DOT30,
};
pub const CIEXYZ = struct_tagCIEXYZ;
pub const LPCIEXYZ = ?&CIEXYZ;
pub const struct_tagICEXYZTRIPLE = extern struct {
ciexyzRed: CIEXYZ,
ciexyzGreen: CIEXYZ,
ciexyzBlue: CIEXYZ,
};
pub const CIEXYZTRIPLE = struct_tagICEXYZTRIPLE;
pub const LPCIEXYZTRIPLE = ?&CIEXYZTRIPLE;
pub const struct_tagLOGCOLORSPACEA = extern struct {
lcsSignature: DWORD,
lcsVersion: DWORD,
lcsSize: DWORD,
lcsCSType: LCSCSTYPE,
lcsIntent: LCSGAMUTMATCH,
lcsEndpoints: CIEXYZTRIPLE,
lcsGammaRed: DWORD,
lcsGammaGreen: DWORD,
lcsGammaBlue: DWORD,
lcsFilename: [260]CHAR,
};
pub const LOGCOLORSPACEA = struct_tagLOGCOLORSPACEA;
pub const LPLOGCOLORSPACEA = ?&struct_tagLOGCOLORSPACEA;
pub const struct_tagLOGCOLORSPACEW = extern struct {
lcsSignature: DWORD,
lcsVersion: DWORD,
lcsSize: DWORD,
lcsCSType: LCSCSTYPE,
lcsIntent: LCSGAMUTMATCH,
lcsEndpoints: CIEXYZTRIPLE,
lcsGammaRed: DWORD,
lcsGammaGreen: DWORD,
lcsGammaBlue: DWORD,
lcsFilename: [260]WCHAR,
};
pub const LOGCOLORSPACEW = struct_tagLOGCOLORSPACEW;
pub const LPLOGCOLORSPACEW = ?&struct_tagLOGCOLORSPACEW;
pub const LOGCOLORSPACE = LOGCOLORSPACEA;
pub const LPLOGCOLORSPACE = LPLOGCOLORSPACEA;
pub const struct_tagBITMAPCOREHEADER = extern struct {
bcSize: DWORD,
bcWidth: WORD,
bcHeight: WORD,
bcPlanes: WORD,
bcBitCount: WORD,
};
pub const BITMAPCOREHEADER = struct_tagBITMAPCOREHEADER;
pub const LPBITMAPCOREHEADER = ?&struct_tagBITMAPCOREHEADER;
pub const PBITMAPCOREHEADER = ?&struct_tagBITMAPCOREHEADER;
pub const struct_tagBITMAPINFOHEADER = extern struct {
biSize: DWORD,
biWidth: LONG,
biHeight: LONG,
biPlanes: WORD,
biBitCount: WORD,
biCompression: DWORD,
biSizeImage: DWORD,
biXPelsPerMeter: LONG,
biYPelsPerMeter: LONG,
biClrUsed: DWORD,
biClrImportant: DWORD,
};
pub const BITMAPINFOHEADER = struct_tagBITMAPINFOHEADER;
pub const LPBITMAPINFOHEADER = ?&struct_tagBITMAPINFOHEADER;
pub const PBITMAPINFOHEADER = ?&struct_tagBITMAPINFOHEADER;
pub const BITMAPV4HEADER = extern struct {
bV4Size: DWORD,
bV4Width: LONG,
bV4Height: LONG,
bV4Planes: WORD,
bV4BitCount: WORD,
bV4V4Compression: DWORD,
bV4SizeImage: DWORD,
bV4XPelsPerMeter: LONG,
bV4YPelsPerMeter: LONG,
bV4ClrUsed: DWORD,
bV4ClrImportant: DWORD,
bV4RedMask: DWORD,
bV4GreenMask: DWORD,
bV4BlueMask: DWORD,
bV4AlphaMask: DWORD,
bV4CSType: DWORD,
bV4Endpoints: CIEXYZTRIPLE,
bV4GammaRed: DWORD,
bV4GammaGreen: DWORD,
bV4GammaBlue: DWORD,
};
pub const LPBITMAPV4HEADER = ?&extern struct {
bV4Size: DWORD,
bV4Width: LONG,
bV4Height: LONG,
bV4Planes: WORD,
bV4BitCount: WORD,
bV4V4Compression: DWORD,
bV4SizeImage: DWORD,
bV4XPelsPerMeter: LONG,
bV4YPelsPerMeter: LONG,
bV4ClrUsed: DWORD,
bV4ClrImportant: DWORD,
bV4RedMask: DWORD,
bV4GreenMask: DWORD,
bV4BlueMask: DWORD,
bV4AlphaMask: DWORD,
bV4CSType: DWORD,
bV4Endpoints: CIEXYZTRIPLE,
bV4GammaRed: DWORD,
bV4GammaGreen: DWORD,
bV4GammaBlue: DWORD,
};
pub const PBITMAPV4HEADER = ?&extern struct {
bV4Size: DWORD,
bV4Width: LONG,
bV4Height: LONG,
bV4Planes: WORD,
bV4BitCount: WORD,
bV4V4Compression: DWORD,
bV4SizeImage: DWORD,
bV4XPelsPerMeter: LONG,
bV4YPelsPerMeter: LONG,
bV4ClrUsed: DWORD,
bV4ClrImportant: DWORD,
bV4RedMask: DWORD,
bV4GreenMask: DWORD,
bV4BlueMask: DWORD,
bV4AlphaMask: DWORD,
bV4CSType: DWORD,
bV4Endpoints: CIEXYZTRIPLE,
bV4GammaRed: DWORD,
bV4GammaGreen: DWORD,
bV4GammaBlue: DWORD,
};
pub const BITMAPV5HEADER = extern struct {
bV5Size: DWORD,
bV5Width: LONG,
bV5Height: LONG,
bV5Planes: WORD,
bV5BitCount: WORD,
bV5Compression: DWORD,
bV5SizeImage: DWORD,
bV5XPelsPerMeter: LONG,
bV5YPelsPerMeter: LONG,
bV5ClrUsed: DWORD,
bV5ClrImportant: DWORD,
bV5RedMask: DWORD,
bV5GreenMask: DWORD,
bV5BlueMask: DWORD,
bV5AlphaMask: DWORD,
bV5CSType: DWORD,
bV5Endpoints: CIEXYZTRIPLE,
bV5GammaRed: DWORD,
bV5GammaGreen: DWORD,
bV5GammaBlue: DWORD,
bV5Intent: DWORD,
bV5ProfileData: DWORD,
bV5ProfileSize: DWORD,
bV5Reserved: DWORD,
};
pub const LPBITMAPV5HEADER = ?&extern struct {
bV5Size: DWORD,
bV5Width: LONG,
bV5Height: LONG,
bV5Planes: WORD,
bV5BitCount: WORD,
bV5Compression: DWORD,
bV5SizeImage: DWORD,
bV5XPelsPerMeter: LONG,
bV5YPelsPerMeter: LONG,
bV5ClrUsed: DWORD,
bV5ClrImportant: DWORD,
bV5RedMask: DWORD,
bV5GreenMask: DWORD,
bV5BlueMask: DWORD,
bV5AlphaMask: DWORD,
bV5CSType: DWORD,
bV5Endpoints: CIEXYZTRIPLE,
bV5GammaRed: DWORD,
bV5GammaGreen: DWORD,
bV5GammaBlue: DWORD,
bV5Intent: DWORD,
bV5ProfileData: DWORD,
bV5ProfileSize: DWORD,
bV5Reserved: DWORD,
};
pub const PBITMAPV5HEADER = ?&extern struct {
bV5Size: DWORD,
bV5Width: LONG,
bV5Height: LONG,
bV5Planes: WORD,
bV5BitCount: WORD,
bV5Compression: DWORD,
bV5SizeImage: DWORD,
bV5XPelsPerMeter: LONG,
bV5YPelsPerMeter: LONG,
bV5ClrUsed: DWORD,
bV5ClrImportant: DWORD,
bV5RedMask: DWORD,
bV5GreenMask: DWORD,
bV5BlueMask: DWORD,
bV5AlphaMask: DWORD,
bV5CSType: DWORD,
bV5Endpoints: CIEXYZTRIPLE,
bV5GammaRed: DWORD,
bV5GammaGreen: DWORD,
bV5GammaBlue: DWORD,
bV5Intent: DWORD,
bV5ProfileData: DWORD,
bV5ProfileSize: DWORD,
bV5Reserved: DWORD,
};
pub const struct_tagBITMAPINFO = extern struct {
bmiHeader: BITMAPINFOHEADER,
bmiColors: [1]RGBQUAD,
};
pub const BITMAPINFO = struct_tagBITMAPINFO;
pub const LPBITMAPINFO = ?&struct_tagBITMAPINFO;
pub const PBITMAPINFO = ?&struct_tagBITMAPINFO;
pub const struct_tagBITMAPCOREINFO = extern struct {
bmciHeader: BITMAPCOREHEADER,
bmciColors: [1]RGBTRIPLE,
};
pub const BITMAPCOREINFO = struct_tagBITMAPCOREINFO;
pub const LPBITMAPCOREINFO = ?&struct_tagBITMAPCOREINFO;
pub const PBITMAPCOREINFO = ?&struct_tagBITMAPCOREINFO;
pub const struct_tagBITMAPFILEHEADER = extern struct {
bfType: WORD,
bfSize: DWORD,
bfReserved1: WORD,
bfReserved2: WORD,
bfOffBits: DWORD,
};
pub const BITMAPFILEHEADER = struct_tagBITMAPFILEHEADER;
pub const LPBITMAPFILEHEADER = ?&struct_tagBITMAPFILEHEADER;
pub const PBITMAPFILEHEADER = ?&struct_tagBITMAPFILEHEADER;
pub const struct_tagFONTSIGNATURE = extern struct {
fsUsb: [4]DWORD,
fsCsb: [2]DWORD,
};
pub const FONTSIGNATURE = struct_tagFONTSIGNATURE;
pub const PFONTSIGNATURE = ?&struct_tagFONTSIGNATURE;
pub const LPFONTSIGNATURE = ?&struct_tagFONTSIGNATURE;
pub const struct_tagCHARSETINFO = extern struct {
ciCharset: UINT,
ciACP: UINT,
fs: FONTSIGNATURE,
};
pub const CHARSETINFO = struct_tagCHARSETINFO;
pub const PCHARSETINFO = ?&struct_tagCHARSETINFO;
pub const NPCHARSETINFO = ?&struct_tagCHARSETINFO;
pub const LPCHARSETINFO = ?&struct_tagCHARSETINFO;
pub const struct_tagLOCALESIGNATURE = extern struct {
lsUsb: [4]DWORD,
lsCsbDefault: [2]DWORD,
lsCsbSupported: [2]DWORD,
};
pub const LOCALESIGNATURE = struct_tagLOCALESIGNATURE;
pub const PLOCALESIGNATURE = ?&struct_tagLOCALESIGNATURE;
pub const LPLOCALESIGNATURE = ?&struct_tagLOCALESIGNATURE;
pub const struct_tagHANDLETABLE = extern struct {
objectHandle: [1]HGDIOBJ,
};
pub const HANDLETABLE = struct_tagHANDLETABLE;
pub const PHANDLETABLE = ?&struct_tagHANDLETABLE;
pub const LPHANDLETABLE = ?&struct_tagHANDLETABLE;
pub const struct_tagMETARECORD = extern struct {
rdSize: DWORD,
rdFunction: WORD,
rdParm: [1]WORD,
};
pub const METARECORD = struct_tagMETARECORD;
pub const PMETARECORD = ?&struct_tagMETARECORD;
pub const LPMETARECORD = ?&struct_tagMETARECORD;
pub const struct_tagMETAFILEPICT = extern struct {
mm: LONG,
xExt: LONG,
yExt: LONG,
hMF: HMETAFILE,
};
pub const METAFILEPICT = struct_tagMETAFILEPICT;
pub const LPMETAFILEPICT = ?&struct_tagMETAFILEPICT;
pub const struct_tagMETAHEADER = extern struct {
mtType: WORD,
mtHeaderSize: WORD,
mtVersion: WORD,
mtSize: DWORD,
mtNoObjects: WORD,
mtMaxRecord: DWORD,
mtNoParameters: WORD,
};
pub const METAHEADER = struct_tagMETAHEADER;
pub const PMETAHEADER = ?&struct_tagMETAHEADER;
pub const LPMETAHEADER = ?&struct_tagMETAHEADER;
pub const struct_tagENHMETARECORD = extern struct {
iType: DWORD,
nSize: DWORD,
dParm: [1]DWORD,
};
pub const ENHMETARECORD = struct_tagENHMETARECORD;
pub const PENHMETARECORD = ?&struct_tagENHMETARECORD;
pub const LPENHMETARECORD = ?&struct_tagENHMETARECORD;
pub const struct_tagENHMETAHEADER = extern struct {
iType: DWORD,
nSize: DWORD,
rclBounds: RECTL,
rclFrame: RECTL,
dSignature: DWORD,
nVersion: DWORD,
nBytes: DWORD,
nRecords: DWORD,
nHandles: WORD,
sReserved: WORD,
nDescription: DWORD,
offDescription: DWORD,
nPalEntries: DWORD,
szlDevice: SIZEL,
szlMillimeters: SIZEL,
cbPixelFormat: DWORD,
offPixelFormat: DWORD,
bOpenGL: DWORD,
szlMicrometers: SIZEL,
};
pub const ENHMETAHEADER = struct_tagENHMETAHEADER;
pub const PENHMETAHEADER = ?&struct_tagENHMETAHEADER;
pub const LPENHMETAHEADER = ?&struct_tagENHMETAHEADER;
pub const BCHAR = BYTE;
pub const struct_tagTEXTMETRICA = extern struct {
tmHeight: LONG,
tmAscent: LONG,
tmDescent: LONG,
tmInternalLeading: LONG,
tmExternalLeading: LONG,
tmAveCharWidth: LONG,
tmMaxCharWidth: LONG,
tmWeight: LONG,
tmOverhang: LONG,
tmDigitizedAspectX: LONG,
tmDigitizedAspectY: LONG,
tmFirstChar: BYTE,
tmLastChar: BYTE,
tmDefaultChar: BYTE,
tmBreakChar: BYTE,
tmItalic: BYTE,
tmUnderlined: BYTE,
tmStruckOut: BYTE,
tmPitchAndFamily: BYTE,
tmCharSet: BYTE,
};
pub const TEXTMETRICA = struct_tagTEXTMETRICA;
pub const PTEXTMETRICA = ?&struct_tagTEXTMETRICA;
pub const NPTEXTMETRICA = ?&struct_tagTEXTMETRICA;
pub const LPTEXTMETRICA = ?&struct_tagTEXTMETRICA;
pub const struct_tagTEXTMETRICW = extern struct {
tmHeight: LONG,
tmAscent: LONG,
tmDescent: LONG,
tmInternalLeading: LONG,
tmExternalLeading: LONG,
tmAveCharWidth: LONG,
tmMaxCharWidth: LONG,
tmWeight: LONG,
tmOverhang: LONG,
tmDigitizedAspectX: LONG,
tmDigitizedAspectY: LONG,
tmFirstChar: WCHAR,
tmLastChar: WCHAR,
tmDefaultChar: WCHAR,
tmBreakChar: WCHAR,
tmItalic: BYTE,
tmUnderlined: BYTE,
tmStruckOut: BYTE,
tmPitchAndFamily: BYTE,
tmCharSet: BYTE,
};
pub const TEXTMETRICW = struct_tagTEXTMETRICW;
pub const PTEXTMETRICW = ?&struct_tagTEXTMETRICW;
pub const NPTEXTMETRICW = ?&struct_tagTEXTMETRICW;
pub const LPTEXTMETRICW = ?&struct_tagTEXTMETRICW;
pub const TEXTMETRIC = TEXTMETRICA;
pub const PTEXTMETRIC = PTEXTMETRICA;
pub const NPTEXTMETRIC = NPTEXTMETRICA;
pub const LPTEXTMETRIC = LPTEXTMETRICA;
pub const struct_tagNEWTEXTMETRICA = extern struct {
tmHeight: LONG,
tmAscent: LONG,
tmDescent: LONG,
tmInternalLeading: LONG,
tmExternalLeading: LONG,
tmAveCharWidth: LONG,
tmMaxCharWidth: LONG,
tmWeight: LONG,
tmOverhang: LONG,
tmDigitizedAspectX: LONG,
tmDigitizedAspectY: LONG,
tmFirstChar: BYTE,
tmLastChar: BYTE,
tmDefaultChar: BYTE,
tmBreakChar: BYTE,
tmItalic: BYTE,
tmUnderlined: BYTE,
tmStruckOut: BYTE,
tmPitchAndFamily: BYTE,
tmCharSet: BYTE,
ntmFlags: DWORD,
ntmSizeEM: UINT,
ntmCellHeight: UINT,
ntmAvgWidth: UINT,
};
pub const NEWTEXTMETRICA = struct_tagNEWTEXTMETRICA;
pub const PNEWTEXTMETRICA = ?&struct_tagNEWTEXTMETRICA;
pub const NPNEWTEXTMETRICA = ?&struct_tagNEWTEXTMETRICA;
pub const LPNEWTEXTMETRICA = ?&struct_tagNEWTEXTMETRICA;
pub const struct_tagNEWTEXTMETRICW = extern struct {
tmHeight: LONG,
tmAscent: LONG,
tmDescent: LONG,
tmInternalLeading: LONG,
tmExternalLeading: LONG,
tmAveCharWidth: LONG,
tmMaxCharWidth: LONG,
tmWeight: LONG,
tmOverhang: LONG,
tmDigitizedAspectX: LONG,
tmDigitizedAspectY: LONG,
tmFirstChar: WCHAR,
tmLastChar: WCHAR,
tmDefaultChar: WCHAR,
tmBreakChar: WCHAR,
tmItalic: BYTE,
tmUnderlined: BYTE,
tmStruckOut: BYTE,
tmPitchAndFamily: BYTE,
tmCharSet: BYTE,
ntmFlags: DWORD,
ntmSizeEM: UINT,
ntmCellHeight: UINT,
ntmAvgWidth: UINT,
};
pub const NEWTEXTMETRICW = struct_tagNEWTEXTMETRICW;
pub const PNEWTEXTMETRICW = ?&struct_tagNEWTEXTMETRICW;
pub const NPNEWTEXTMETRICW = ?&struct_tagNEWTEXTMETRICW;
pub const LPNEWTEXTMETRICW = ?&struct_tagNEWTEXTMETRICW;
pub const NEWTEXTMETRIC = NEWTEXTMETRICA;
pub const PNEWTEXTMETRIC = PNEWTEXTMETRICA;
pub const NPNEWTEXTMETRIC = NPNEWTEXTMETRICA;
pub const LPNEWTEXTMETRIC = LPNEWTEXTMETRICA;
pub const struct_tagNEWTEXTMETRICEXA = extern struct {
ntmTm: NEWTEXTMETRICA,
ntmFontSig: FONTSIGNATURE,
};
pub const NEWTEXTMETRICEXA = struct_tagNEWTEXTMETRICEXA;
pub const struct_tagNEWTEXTMETRICEXW = extern struct {
ntmTm: NEWTEXTMETRICW,
ntmFontSig: FONTSIGNATURE,
};
pub const NEWTEXTMETRICEXW = struct_tagNEWTEXTMETRICEXW;
pub const NEWTEXTMETRICEX = NEWTEXTMETRICEXA;
pub const struct_tagPELARRAY = extern struct {
paXCount: LONG,
paYCount: LONG,
paXExt: LONG,
paYExt: LONG,
paRGBs: BYTE,
};
pub const PELARRAY = struct_tagPELARRAY;
pub const PPELARRAY = ?&struct_tagPELARRAY;
pub const NPPELARRAY = ?&struct_tagPELARRAY;
pub const LPPELARRAY = ?&struct_tagPELARRAY;
pub const struct_tagLOGBRUSH = extern struct {
lbStyle: UINT,
lbColor: COLORREF,
lbHatch: ULONG_PTR,
};
pub const LOGBRUSH = struct_tagLOGBRUSH;
pub const PLOGBRUSH = ?&struct_tagLOGBRUSH;
pub const NPLOGBRUSH = ?&struct_tagLOGBRUSH;
pub const LPLOGBRUSH = ?&struct_tagLOGBRUSH;
pub const struct_tagLOGBRUSH32 = extern struct {
lbStyle: UINT,
lbColor: COLORREF,
lbHatch: ULONG,
};
pub const LOGBRUSH32 = struct_tagLOGBRUSH32;
pub const PLOGBRUSH32 = ?&struct_tagLOGBRUSH32;
pub const NPLOGBRUSH32 = ?&struct_tagLOGBRUSH32;
pub const LPLOGBRUSH32 = ?&struct_tagLOGBRUSH32;
pub const PATTERN = LOGBRUSH;
pub const PPATTERN = ?&PATTERN;
pub const NPPATTERN = ?&PATTERN;
pub const LPPATTERN = ?&PATTERN;
pub const struct_tagLOGPEN = extern struct {
lopnStyle: UINT,
lopnWidth: POINT,
lopnColor: COLORREF,
};
pub const LOGPEN = struct_tagLOGPEN;
pub const PLOGPEN = ?&struct_tagLOGPEN;
pub const NPLOGPEN = ?&struct_tagLOGPEN;
pub const LPLOGPEN = ?&struct_tagLOGPEN;
pub const struct_tagEXTLOGPEN = extern struct {
elpPenStyle: DWORD,
elpWidth: DWORD,
elpBrushStyle: UINT,
elpColor: COLORREF,
elpHatch: ULONG_PTR,
elpNumEntries: DWORD,
elpStyleEntry: [1]DWORD,
};
pub const EXTLOGPEN = struct_tagEXTLOGPEN;
pub const PEXTLOGPEN = ?&struct_tagEXTLOGPEN;
pub const NPEXTLOGPEN = ?&struct_tagEXTLOGPEN;
pub const LPEXTLOGPEN = ?&struct_tagEXTLOGPEN;
pub const struct_tagEXTLOGPEN32 = extern struct {
elpPenStyle: DWORD,
elpWidth: DWORD,
elpBrushStyle: UINT,
elpColor: COLORREF,
elpHatch: ULONG,
elpNumEntries: DWORD,
elpStyleEntry: [1]DWORD,
};
pub const EXTLOGPEN32 = struct_tagEXTLOGPEN32;
pub const PEXTLOGPEN32 = ?&struct_tagEXTLOGPEN32;
pub const NPEXTLOGPEN32 = ?&struct_tagEXTLOGPEN32;
pub const LPEXTLOGPEN32 = ?&struct_tagEXTLOGPEN32;
pub const struct_tagPALETTEENTRY = extern struct {
peRed: BYTE,
peGreen: BYTE,
peBlue: BYTE,
peFlags: BYTE,
};
pub const PALETTEENTRY = struct_tagPALETTEENTRY;
pub const PPALETTEENTRY = ?&struct_tagPALETTEENTRY;
pub const LPPALETTEENTRY = ?&struct_tagPALETTEENTRY;
pub const struct_tagLOGPALETTE = extern struct {
palVersion: WORD,
palNumEntries: WORD,
palPalEntry: [1]PALETTEENTRY,
};
pub const LOGPALETTE = struct_tagLOGPALETTE;
pub const PLOGPALETTE = ?&struct_tagLOGPALETTE;
pub const NPLOGPALETTE = ?&struct_tagLOGPALETTE;
pub const LPLOGPALETTE = ?&struct_tagLOGPALETTE;
pub const struct_tagLOGFONTA = extern struct {
lfHeight: LONG,
lfWidth: LONG,
lfEscapement: LONG,
lfOrientation: LONG,
lfWeight: LONG,
lfItalic: BYTE,
lfUnderline: BYTE,
lfStrikeOut: BYTE,
lfCharSet: BYTE,
lfOutPrecision: BYTE,
lfClipPrecision: BYTE,
lfQuality: BYTE,
lfPitchAndFamily: BYTE,
lfFaceName: [32]CHAR,
};
pub const LOGFONTA = struct_tagLOGFONTA;
pub const PLOGFONTA = ?&struct_tagLOGFONTA;
pub const NPLOGFONTA = ?&struct_tagLOGFONTA;
pub const LPLOGFONTA = ?&struct_tagLOGFONTA;
pub const struct_tagLOGFONTW = extern struct {
lfHeight: LONG,
lfWidth: LONG,
lfEscapement: LONG,
lfOrientation: LONG,
lfWeight: LONG,
lfItalic: BYTE,
lfUnderline: BYTE,
lfStrikeOut: BYTE,
lfCharSet: BYTE,
lfOutPrecision: BYTE,
lfClipPrecision: BYTE,
lfQuality: BYTE,
lfPitchAndFamily: BYTE,
lfFaceName: [32]WCHAR,
};
pub const LOGFONTW = struct_tagLOGFONTW;
pub const PLOGFONTW = ?&struct_tagLOGFONTW;
pub const NPLOGFONTW = ?&struct_tagLOGFONTW;
pub const LPLOGFONTW = ?&struct_tagLOGFONTW;
pub const LOGFONT = LOGFONTA;
pub const PLOGFONT = PLOGFONTA;
pub const NPLOGFONT = NPLOGFONTA;
pub const LPLOGFONT = LPLOGFONTA;
pub const struct_tagENUMLOGFONTA = extern struct {
elfLogFont: LOGFONTA,
elfFullName: [64]BYTE,
elfStyle: [32]BYTE,
};
pub const ENUMLOGFONTA = struct_tagENUMLOGFONTA;
pub const LPENUMLOGFONTA = ?&struct_tagENUMLOGFONTA;
pub const struct_tagENUMLOGFONTW = extern struct {
elfLogFont: LOGFONTW,
elfFullName: [64]WCHAR,
elfStyle: [32]WCHAR,
};
pub const ENUMLOGFONTW = struct_tagENUMLOGFONTW;
pub const LPENUMLOGFONTW = ?&struct_tagENUMLOGFONTW;
pub const ENUMLOGFONT = ENUMLOGFONTA;
pub const LPENUMLOGFONT = LPENUMLOGFONTA;
pub const struct_tagENUMLOGFONTEXA = extern struct {
elfLogFont: LOGFONTA,
elfFullName: [64]BYTE,
elfStyle: [32]BYTE,
elfScript: [32]BYTE,
};
pub const ENUMLOGFONTEXA = struct_tagENUMLOGFONTEXA;
pub const LPENUMLOGFONTEXA = ?&struct_tagENUMLOGFONTEXA;
pub const struct_tagENUMLOGFONTEXW = extern struct {
elfLogFont: LOGFONTW,
elfFullName: [64]WCHAR,
elfStyle: [32]WCHAR,
elfScript: [32]WCHAR,
};
pub const ENUMLOGFONTEXW = struct_tagENUMLOGFONTEXW;
pub const LPENUMLOGFONTEXW = ?&struct_tagENUMLOGFONTEXW;
pub const ENUMLOGFONTEX = ENUMLOGFONTEXA;
pub const LPENUMLOGFONTEX = LPENUMLOGFONTEXA;
pub const struct_tagPANOSE = extern struct {
bFamilyType: BYTE,
bSerifStyle: BYTE,
bWeight: BYTE,
bProportion: BYTE,
bContrast: BYTE,
bStrokeVariation: BYTE,
bArmStyle: BYTE,
bLetterform: BYTE,
bMidline: BYTE,
bXHeight: BYTE,
};
pub const PANOSE = struct_tagPANOSE;
pub const LPPANOSE = ?&struct_tagPANOSE;
pub const struct_tagEXTLOGFONTA = extern struct {
elfLogFont: LOGFONTA,
elfFullName: [64]BYTE,
elfStyle: [32]BYTE,
elfVersion: DWORD,
elfStyleSize: DWORD,
elfMatch: DWORD,
elfReserved: DWORD,
elfVendorId: [4]BYTE,
elfCulture: DWORD,
elfPanose: PANOSE,
};
pub const EXTLOGFONTA = struct_tagEXTLOGFONTA;
pub const PEXTLOGFONTA = ?&struct_tagEXTLOGFONTA;
pub const NPEXTLOGFONTA = ?&struct_tagEXTLOGFONTA;
pub const LPEXTLOGFONTA = ?&struct_tagEXTLOGFONTA;
pub const struct_tagEXTLOGFONTW = extern struct {
elfLogFont: LOGFONTW,
elfFullName: [64]WCHAR,
elfStyle: [32]WCHAR,
elfVersion: DWORD,
elfStyleSize: DWORD,
elfMatch: DWORD,
elfReserved: DWORD,
elfVendorId: [4]BYTE,
elfCulture: DWORD,
elfPanose: PANOSE,
};
pub const EXTLOGFONTW = struct_tagEXTLOGFONTW;
pub const PEXTLOGFONTW = ?&struct_tagEXTLOGFONTW;
pub const NPEXTLOGFONTW = ?&struct_tagEXTLOGFONTW;
pub const LPEXTLOGFONTW = ?&struct_tagEXTLOGFONTW;
pub const EXTLOGFONT = EXTLOGFONTA;
pub const PEXTLOGFONT = PEXTLOGFONTA;
pub const NPEXTLOGFONT = NPEXTLOGFONTA;
pub const LPEXTLOGFONT = LPEXTLOGFONTA;
pub const struct__devicemodeA = @OpaqueType();
pub const DEVMODEA = struct__devicemodeA;
pub const PDEVMODEA = ?&struct__devicemodeA;
pub const NPDEVMODEA = ?&struct__devicemodeA;
pub const LPDEVMODEA = ?&struct__devicemodeA;
pub const struct__devicemodeW = @OpaqueType();
pub const DEVMODEW = struct__devicemodeW;
pub const PDEVMODEW = ?&struct__devicemodeW;
pub const NPDEVMODEW = ?&struct__devicemodeW;
pub const LPDEVMODEW = ?&struct__devicemodeW;
pub const DEVMODE = DEVMODEA;
pub const PDEVMODE = PDEVMODEA;
pub const NPDEVMODE = NPDEVMODEA;
pub const LPDEVMODE = LPDEVMODEA;
pub const struct__DISPLAY_DEVICEA = extern struct {
cb: DWORD,
DeviceName: [32]CHAR,
DeviceString: [128]CHAR,
StateFlags: DWORD,
DeviceID: [128]CHAR,
DeviceKey: [128]CHAR,
};
pub const DISPLAY_DEVICEA = struct__DISPLAY_DEVICEA;
pub const PDISPLAY_DEVICEA = ?&struct__DISPLAY_DEVICEA;
pub const LPDISPLAY_DEVICEA = ?&struct__DISPLAY_DEVICEA;
pub const struct__DISPLAY_DEVICEW = extern struct {
cb: DWORD,
DeviceName: [32]WCHAR,
DeviceString: [128]WCHAR,
StateFlags: DWORD,
DeviceID: [128]WCHAR,
DeviceKey: [128]WCHAR,
};
pub const DISPLAY_DEVICEW = struct__DISPLAY_DEVICEW;
pub const PDISPLAY_DEVICEW = ?&struct__DISPLAY_DEVICEW;
pub const LPDISPLAY_DEVICEW = ?&struct__DISPLAY_DEVICEW;
pub const DISPLAY_DEVICE = DISPLAY_DEVICEA;
pub const PDISPLAY_DEVICE = PDISPLAY_DEVICEA;
pub const LPDISPLAY_DEVICE = LPDISPLAY_DEVICEA;
pub const struct_DISPLAYCONFIG_RATIONAL = extern struct {
Numerator: UINT32,
Denominator: UINT32,
};
pub const DISPLAYCONFIG_RATIONAL = struct_DISPLAYCONFIG_RATIONAL;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER: c_int = -4294967295;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15: c_int = 0;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SVIDEO: c_int = 1;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPOSITE_VIDEO: c_int = 2;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_COMPONENT_VIDEO: c_int = 3;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI: c_int = 4;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI: c_int = 5;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS: c_int = 6;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN: c_int = 8;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI: c_int = 9;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL: c_int = 10;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED: c_int = 11;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL: c_int = 12;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED: c_int = 13;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE: c_int = 14;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST: c_int = 15;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL: c_int = -2147483648;
pub const DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32: c_int = -4294967295;
pub const DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY = c_int;
pub const DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED: c_int = 0;
pub const DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE: c_int = 1;
pub const DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED: c_int = 2;
pub const DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST: c_int = 2;
pub const DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_LOWERFIELDFIRST: c_int = 3;
pub const DISPLAYCONFIG_SCANLINE_ORDERING_FORCE_UINT32: c_int = -4294967295;
pub const DISPLAYCONFIG_SCANLINE_ORDERING = c_int;
pub const struct_DISPLAYCONFIG_2DREGION = extern struct {
cx: UINT32,
cy: UINT32,
};
pub const DISPLAYCONFIG_2DREGION = struct_DISPLAYCONFIG_2DREGION;
pub const struct_DISPLAYCONFIG_VIDEO_SIGNAL_INFO = @OpaqueType();
pub const DISPLAYCONFIG_VIDEO_SIGNAL_INFO = struct_DISPLAYCONFIG_VIDEO_SIGNAL_INFO;
pub const DISPLAYCONFIG_SCALING_IDENTITY: c_int = 1;
pub const DISPLAYCONFIG_SCALING_CENTERED: c_int = 2;
pub const DISPLAYCONFIG_SCALING_STRETCHED: c_int = 3;
pub const DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX: c_int = 4;
pub const DISPLAYCONFIG_SCALING_CUSTOM: c_int = 5;
pub const DISPLAYCONFIG_SCALING_PREFERRED: c_int = 128;
pub const DISPLAYCONFIG_SCALING_FORCE_UINT32: c_int = -4294967295;
pub const DISPLAYCONFIG_SCALING = c_int;
pub const DISPLAYCONFIG_ROTATION_IDENTITY: c_int = 1;
pub const DISPLAYCONFIG_ROTATION_ROTATE90: c_int = 2;
pub const DISPLAYCONFIG_ROTATION_ROTATE180: c_int = 3;
pub const DISPLAYCONFIG_ROTATION_ROTATE270: c_int = 4;
pub const DISPLAYCONFIG_ROTATION_FORCE_UINT32: c_int = -4294967295;
pub const DISPLAYCONFIG_ROTATION = c_int;
pub const DISPLAYCONFIG_MODE_INFO_TYPE_SOURCE: c_int = 1;
pub const DISPLAYCONFIG_MODE_INFO_TYPE_TARGET: c_int = 2;
pub const DISPLAYCONFIG_MODE_INFO_TYPE_FORCE_UINT32: c_int = -4294967295;
pub const DISPLAYCONFIG_MODE_INFO_TYPE = c_int;
pub const DISPLAYCONFIG_PIXELFORMAT_8BPP: c_int = 1;
pub const DISPLAYCONFIG_PIXELFORMAT_16BPP: c_int = 2;
pub const DISPLAYCONFIG_PIXELFORMAT_24BPP: c_int = 3;
pub const DISPLAYCONFIG_PIXELFORMAT_32BPP: c_int = 4;
pub const DISPLAYCONFIG_PIXELFORMAT_NONGDI: c_int = 5;
pub const DISPLAYCONFIG_PIXELFORMAT_FORCE_UINT32: c_int = -4294967295;
pub const DISPLAYCONFIG_PIXELFORMAT = c_int;
pub const struct_DISPLAYCONFIG_SOURCE_MODE = extern struct {
width: UINT32,
height: UINT32,
pixelFormat: DISPLAYCONFIG_PIXELFORMAT,
position: POINTL,
};
pub const DISPLAYCONFIG_SOURCE_MODE = struct_DISPLAYCONFIG_SOURCE_MODE;
pub const struct_DISPLAYCONFIG_TARGET_MODE = extern struct {
targetVideoSignalInfo: DISPLAYCONFIG_VIDEO_SIGNAL_INFO,
};
pub const DISPLAYCONFIG_TARGET_MODE = struct_DISPLAYCONFIG_TARGET_MODE;
pub const struct_DISPLAYCONFIG_MODE_INFO = @OpaqueType();
pub const DISPLAYCONFIG_MODE_INFO = struct_DISPLAYCONFIG_MODE_INFO;
pub const struct_DISPLAYCONFIG_PATH_SOURCE_INFO = extern struct {
adapterId: LUID,
id: UINT32,
modeInfoIdx: UINT32,
statusFlags: UINT32,
};
pub const DISPLAYCONFIG_PATH_SOURCE_INFO = struct_DISPLAYCONFIG_PATH_SOURCE_INFO;
pub const struct_DISPLAYCONFIG_PATH_TARGET_INFO = extern struct {
adapterId: LUID,
id: UINT32,
modeInfoIdx: UINT32,
outputTechnology: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY,
rotation: DISPLAYCONFIG_ROTATION,
scaling: DISPLAYCONFIG_SCALING,
refreshRate: DISPLAYCONFIG_RATIONAL,
scanLineOrdering: DISPLAYCONFIG_SCANLINE_ORDERING,
targetAvailable: BOOL,
statusFlags: UINT32,
};
pub const DISPLAYCONFIG_PATH_TARGET_INFO = struct_DISPLAYCONFIG_PATH_TARGET_INFO;
pub const struct_DISPLAYCONFIG_PATH_INFO = extern struct {
sourceInfo: DISPLAYCONFIG_PATH_SOURCE_INFO,
targetInfo: DISPLAYCONFIG_PATH_TARGET_INFO,
flags: UINT32,
};
pub const DISPLAYCONFIG_PATH_INFO = struct_DISPLAYCONFIG_PATH_INFO;
pub const DISPLAYCONFIG_TOPOLOGY_INTERNAL: c_int = 1;
pub const DISPLAYCONFIG_TOPOLOGY_CLONE: c_int = 2;
pub const DISPLAYCONFIG_TOPOLOGY_EXTEND: c_int = 4;
pub const DISPLAYCONFIG_TOPOLOGY_EXTERNAL: c_int = 8;
pub const DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32: c_int = -4294967295;
pub const DISPLAYCONFIG_TOPOLOGY_ID = c_int;
pub const DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME: c_int = 1;
pub const DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME: c_int = 2;
pub const DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE: c_int = 3;
pub const DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME: c_int = 4;
pub const DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE: c_int = 5;
pub const DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE: c_int = 6;
pub const DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32: c_int = -4294967295;
pub const DISPLAYCONFIG_DEVICE_INFO_TYPE = c_int;
pub const struct_DISPLAYCONFIG_DEVICE_INFO_HEADER = extern struct {
type: DISPLAYCONFIG_DEVICE_INFO_TYPE,
size: UINT32,
adapterId: LUID,
id: UINT32,
};
pub const DISPLAYCONFIG_DEVICE_INFO_HEADER = struct_DISPLAYCONFIG_DEVICE_INFO_HEADER;
pub const struct_DISPLAYCONFIG_SOURCE_DEVICE_NAME = extern struct {
header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
viewGdiDeviceName: [32]WCHAR,
};
pub const DISPLAYCONFIG_SOURCE_DEVICE_NAME = struct_DISPLAYCONFIG_SOURCE_DEVICE_NAME;
pub const struct_DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS = @OpaqueType();
pub const DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS = struct_DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS;
pub const struct_DISPLAYCONFIG_TARGET_DEVICE_NAME = extern struct {
header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
flags: DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS,
outputTechnology: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY,
edidManufactureId: UINT16,
edidProductCodeId: UINT16,
connectorInstance: UINT32,
monitorFriendlyDeviceName: [64]WCHAR,
monitorDevicePath: [128]WCHAR,
};
pub const DISPLAYCONFIG_TARGET_DEVICE_NAME = struct_DISPLAYCONFIG_TARGET_DEVICE_NAME;
pub const struct_DISPLAYCONFIG_TARGET_PREFERRED_MODE = extern struct {
header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
width: UINT32,
height: UINT32,
targetMode: DISPLAYCONFIG_TARGET_MODE,
};
pub const DISPLAYCONFIG_TARGET_PREFERRED_MODE = struct_DISPLAYCONFIG_TARGET_PREFERRED_MODE;
pub const struct_DISPLAYCONFIG_ADAPTER_NAME = extern struct {
header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
adapterDevicePath: [128]WCHAR,
};
pub const DISPLAYCONFIG_ADAPTER_NAME = struct_DISPLAYCONFIG_ADAPTER_NAME;
pub const struct_DISPLAYCONFIG_TARGET_BASE_TYPE = extern struct {
header: DISPLAYCONFIG_DEVICE_INFO_HEADER,
baseOutputTechnology: DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY,
};
pub const DISPLAYCONFIG_TARGET_BASE_TYPE = struct_DISPLAYCONFIG_TARGET_BASE_TYPE;
pub const struct_DISPLAYCONFIG_SET_TARGET_PERSISTENCE = @OpaqueType();
pub const DISPLAYCONFIG_SET_TARGET_PERSISTENCE = struct_DISPLAYCONFIG_SET_TARGET_PERSISTENCE;
pub const struct__RGNDATAHEADER = extern struct {
dwSize: DWORD,
iType: DWORD,
nCount: DWORD,
nRgnSize: DWORD,
rcBound: RECT,
};
pub const RGNDATAHEADER = struct__RGNDATAHEADER;
pub const PRGNDATAHEADER = ?&struct__RGNDATAHEADER;
pub const struct__RGNDATA = extern struct {
rdh: RGNDATAHEADER,
Buffer: [1]u8,
};
pub const RGNDATA = struct__RGNDATA;
pub const PRGNDATA = ?&struct__RGNDATA;
pub const NPRGNDATA = ?&struct__RGNDATA;
pub const LPRGNDATA = ?&struct__RGNDATA;
pub const struct__ABC = extern struct {
abcA: c_int,
abcB: UINT,
abcC: c_int,
};
pub const ABC = struct__ABC;
pub const PABC = ?&struct__ABC;
pub const NPABC = ?&struct__ABC;
pub const LPABC = ?&struct__ABC;
pub const struct__ABCFLOAT = extern struct {
abcfA: FLOAT,
abcfB: FLOAT,
abcfC: FLOAT,
};
pub const ABCFLOAT = struct__ABCFLOAT;
pub const PABCFLOAT = ?&struct__ABCFLOAT;
pub const NPABCFLOAT = ?&struct__ABCFLOAT;
pub const LPABCFLOAT = ?&struct__ABCFLOAT;
pub const struct__OUTLINETEXTMETRICA = extern struct {
otmSize: UINT,
otmTextMetrics: TEXTMETRICA,
otmFiller: BYTE,
otmPanoseNumber: PANOSE,
otmfsSelection: UINT,
otmfsType: UINT,
otmsCharSlopeRise: c_int,
otmsCharSlopeRun: c_int,
otmItalicAngle: c_int,
otmEMSquare: UINT,
otmAscent: c_int,
otmDescent: c_int,
otmLineGap: UINT,
otmsCapEmHeight: UINT,
otmsXHeight: UINT,
otmrcFontBox: RECT,
otmMacAscent: c_int,
otmMacDescent: c_int,
otmMacLineGap: UINT,
otmusMinimumPPEM: UINT,
otmptSubscriptSize: POINT,
otmptSubscriptOffset: POINT,
otmptSuperscriptSize: POINT,
otmptSuperscriptOffset: POINT,
otmsStrikeoutSize: UINT,
otmsStrikeoutPosition: c_int,
otmsUnderscoreSize: c_int,
otmsUnderscorePosition: c_int,
otmpFamilyName: PSTR,
otmpFaceName: PSTR,
otmpStyleName: PSTR,
otmpFullName: PSTR,
};
pub const OUTLINETEXTMETRICA = struct__OUTLINETEXTMETRICA;
pub const POUTLINETEXTMETRICA = ?&struct__OUTLINETEXTMETRICA;
pub const NPOUTLINETEXTMETRICA = ?&struct__OUTLINETEXTMETRICA;
pub const LPOUTLINETEXTMETRICA = ?&struct__OUTLINETEXTMETRICA;
pub const struct__OUTLINETEXTMETRICW = extern struct {
otmSize: UINT,
otmTextMetrics: TEXTMETRICW,
otmFiller: BYTE,
otmPanoseNumber: PANOSE,
otmfsSelection: UINT,
otmfsType: UINT,
otmsCharSlopeRise: c_int,
otmsCharSlopeRun: c_int,
otmItalicAngle: c_int,
otmEMSquare: UINT,
otmAscent: c_int,
otmDescent: c_int,
otmLineGap: UINT,
otmsCapEmHeight: UINT,
otmsXHeight: UINT,
otmrcFontBox: RECT,
otmMacAscent: c_int,
otmMacDescent: c_int,
otmMacLineGap: UINT,
otmusMinimumPPEM: UINT,
otmptSubscriptSize: POINT,
otmptSubscriptOffset: POINT,
otmptSuperscriptSize: POINT,
otmptSuperscriptOffset: POINT,
otmsStrikeoutSize: UINT,
otmsStrikeoutPosition: c_int,
otmsUnderscoreSize: c_int,
otmsUnderscorePosition: c_int,
otmpFamilyName: PSTR,
otmpFaceName: PSTR,
otmpStyleName: PSTR,
otmpFullName: PSTR,
};
pub const OUTLINETEXTMETRICW = struct__OUTLINETEXTMETRICW;
pub const POUTLINETEXTMETRICW = ?&struct__OUTLINETEXTMETRICW;
pub const NPOUTLINETEXTMETRICW = ?&struct__OUTLINETEXTMETRICW;
pub const LPOUTLINETEXTMETRICW = ?&struct__OUTLINETEXTMETRICW;
pub const OUTLINETEXTMETRIC = OUTLINETEXTMETRICA;
pub const POUTLINETEXTMETRIC = POUTLINETEXTMETRICA;
pub const NPOUTLINETEXTMETRIC = NPOUTLINETEXTMETRICA;
pub const LPOUTLINETEXTMETRIC = LPOUTLINETEXTMETRICA;
pub const struct_tagPOLYTEXTA = extern struct {
x: c_int,
y: c_int,
n: UINT,
lpstr: LPCSTR,
uiFlags: UINT,
rcl: RECT,
pdx: ?&c_int,
};
pub const POLYTEXTA = struct_tagPOLYTEXTA;
pub const PPOLYTEXTA = ?&struct_tagPOLYTEXTA;
pub const NPPOLYTEXTA = ?&struct_tagPOLYTEXTA;
pub const LPPOLYTEXTA = ?&struct_tagPOLYTEXTA;
pub const struct_tagPOLYTEXTW = extern struct {
x: c_int,
y: c_int,
n: UINT,
lpstr: LPCWSTR,
uiFlags: UINT,
rcl: RECT,
pdx: ?&c_int,
};
pub const POLYTEXTW = struct_tagPOLYTEXTW;
pub const PPOLYTEXTW = ?&struct_tagPOLYTEXTW;
pub const NPPOLYTEXTW = ?&struct_tagPOLYTEXTW;
pub const LPPOLYTEXTW = ?&struct_tagPOLYTEXTW;
pub const POLYTEXT = POLYTEXTA;
pub const PPOLYTEXT = PPOLYTEXTA;
pub const NPPOLYTEXT = NPPOLYTEXTA;
pub const LPPOLYTEXT = LPPOLYTEXTA;
pub const struct__FIXED = extern struct {
fract: WORD,
value: c_short,
};
pub const FIXED = struct__FIXED;
pub const struct__MAT2 = extern struct {
eM11: FIXED,
eM12: FIXED,
eM21: FIXED,
eM22: FIXED,
};
pub const MAT2 = struct__MAT2;
pub const LPMAT2 = ?&struct__MAT2;
pub const struct__GLYPHMETRICS = extern struct {
gmBlackBoxX: UINT,
gmBlackBoxY: UINT,
gmptGlyphOrigin: POINT,
gmCellIncX: c_short,
gmCellIncY: c_short,
};
pub const GLYPHMETRICS = struct__GLYPHMETRICS;
pub const LPGLYPHMETRICS = ?&struct__GLYPHMETRICS;
pub const struct_tagPOINTFX = extern struct {
x: FIXED,
y: FIXED,
};
pub const POINTFX = struct_tagPOINTFX;
pub const LPPOINTFX = ?&struct_tagPOINTFX;
pub const struct_tagTTPOLYCURVE = extern struct {
wType: WORD,
cpfx: WORD,
apfx: [1]POINTFX,
};
pub const TTPOLYCURVE = struct_tagTTPOLYCURVE;
pub const LPTTPOLYCURVE = ?&struct_tagTTPOLYCURVE;
pub const struct_tagTTPOLYGONHEADER = extern struct {
cb: DWORD,
dwType: DWORD,
pfxStart: POINTFX,
};
pub const TTPOLYGONHEADER = struct_tagTTPOLYGONHEADER;
pub const LPTTPOLYGONHEADER = ?&struct_tagTTPOLYGONHEADER;
pub const struct_tagGCP_RESULTSA = extern struct {
lStructSize: DWORD,
lpOutString: LPSTR,
lpOrder: ?&UINT,
lpDx: ?&c_int,
lpCaretPos: ?&c_int,
lpClass: LPSTR,
lpGlyphs: LPWSTR,
nGlyphs: UINT,
nMaxFit: c_int,
};
pub const GCP_RESULTSA = struct_tagGCP_RESULTSA;
pub const LPGCP_RESULTSA = ?&struct_tagGCP_RESULTSA;
pub const struct_tagGCP_RESULTSW = extern struct {
lStructSize: DWORD,
lpOutString: LPWSTR,
lpOrder: ?&UINT,
lpDx: ?&c_int,
lpCaretPos: ?&c_int,
lpClass: LPSTR,
lpGlyphs: LPWSTR,
nGlyphs: UINT,
nMaxFit: c_int,
};
pub const GCP_RESULTSW = struct_tagGCP_RESULTSW;
pub const LPGCP_RESULTSW = ?&struct_tagGCP_RESULTSW;
pub const GCP_RESULTS = GCP_RESULTSA;
pub const LPGCP_RESULTS = LPGCP_RESULTSA;
pub const struct__RASTERIZER_STATUS = extern struct {
nSize: c_short,
wFlags: c_short,
nLanguageID: c_short,
};
pub const RASTERIZER_STATUS = struct__RASTERIZER_STATUS;
pub const LPRASTERIZER_STATUS = ?&struct__RASTERIZER_STATUS;
pub const struct_tagPIXELFORMATDESCRIPTOR = extern struct {
nSize: WORD,
nVersion: WORD,
dwFlags: DWORD,
iPixelType: BYTE,
cColorBits: BYTE,
cRedBits: BYTE,
cRedShift: BYTE,
cGreenBits: BYTE,
cGreenShift: BYTE,
cBlueBits: BYTE,
cBlueShift: BYTE,
cAlphaBits: BYTE,
cAlphaShift: BYTE,
cAccumBits: BYTE,
cAccumRedBits: BYTE,
cAccumGreenBits: BYTE,
cAccumBlueBits: BYTE,
cAccumAlphaBits: BYTE,
cDepthBits: BYTE,
cStencilBits: BYTE,
cAuxBuffers: BYTE,
iLayerType: BYTE,
bReserved: BYTE,
dwLayerMask: DWORD,
dwVisibleMask: DWORD,
dwDamageMask: DWORD,
};
pub const PIXELFORMATDESCRIPTOR = struct_tagPIXELFORMATDESCRIPTOR;
pub const PPIXELFORMATDESCRIPTOR = ?&struct_tagPIXELFORMATDESCRIPTOR;
pub const LPPIXELFORMATDESCRIPTOR = ?&struct_tagPIXELFORMATDESCRIPTOR;
pub const OLDFONTENUMPROCA = ?extern fn(?&const LOGFONTA, ?&const TEXTMETRICA, DWORD, LPARAM) -> c_int;
pub const OLDFONTENUMPROCW = ?extern fn(?&const LOGFONTW, ?&const TEXTMETRICW, DWORD, LPARAM) -> c_int;
pub const FONTENUMPROCA = OLDFONTENUMPROCA;
pub const FONTENUMPROCW = OLDFONTENUMPROCW;
pub const FONTENUMPROC = FONTENUMPROCA;
pub const GOBJENUMPROC = ?extern fn(LPVOID, LPARAM) -> c_int;
pub const LINEDDAPROC = ?extern fn(c_int, c_int, LPARAM);
pub extern fn AddFontResourceA(arg0: LPCSTR) -> c_int;
pub extern fn AddFontResourceW(arg0: LPCWSTR) -> c_int;
pub extern fn AnimatePalette(hPal: HPALETTE, iStartIndex: UINT, cEntries: UINT, ppe: ?&const PALETTEENTRY) -> BOOL;
pub extern fn Arc(hdc: HDC, x1: c_int, y1: c_int, x2: c_int, y2: c_int, x3: c_int, y3: c_int, x4: c_int, y4: c_int) -> BOOL;
pub extern fn BitBlt(hdc: HDC, x: c_int, y: c_int, cx: c_int, cy: c_int, hdcSrc: HDC, x1: c_int, y1: c_int, rop: DWORD) -> BOOL;
pub extern fn CancelDC(hdc: HDC) -> BOOL;
pub extern fn Chord(hdc: HDC, x1: c_int, y1: c_int, x2: c_int, y2: c_int, x3: c_int, y3: c_int, x4: c_int, y4: c_int) -> BOOL;
pub extern fn ChoosePixelFormat(hdc: HDC, ppfd: ?&const PIXELFORMATDESCRIPTOR) -> c_int;
pub extern fn CloseMetaFile(hdc: HDC) -> HMETAFILE;
pub extern fn CombineRgn(hrgnDst: HRGN, hrgnSrc1: HRGN, hrgnSrc2: HRGN, iMode: c_int) -> c_int;
pub extern fn CopyMetaFileA(arg0: HMETAFILE, arg1: LPCSTR) -> HMETAFILE;
pub extern fn CopyMetaFileW(arg0: HMETAFILE, arg1: LPCWSTR) -> HMETAFILE;
pub extern fn CreateBitmap(nWidth: c_int, nHeight: c_int, nPlanes: UINT, nBitCount: UINT, lpBits: ?&const c_void) -> HBITMAP;
pub extern fn CreateBitmapIndirect(pbm: ?&const BITMAP) -> HBITMAP;
pub extern fn CreateBrushIndirect(plbrush: ?&const LOGBRUSH) -> HBRUSH;
pub extern fn CreateCompatibleBitmap(hdc: HDC, cx: c_int, cy: c_int) -> HBITMAP;
pub extern fn CreateDiscardableBitmap(hdc: HDC, cx: c_int, cy: c_int) -> HBITMAP;
pub extern fn CreateCompatibleDC(hdc: HDC) -> HDC;
pub extern fn CreateDCA(pwszDriver: LPCSTR, pwszDevice: LPCSTR, pszPort: LPCSTR, pdm: ?&const DEVMODEA) -> HDC;
pub extern fn CreateDCW(pwszDriver: LPCWSTR, pwszDevice: LPCWSTR, pszPort: LPCWSTR, pdm: ?&const DEVMODEW) -> HDC;
pub extern fn CreateDIBitmap(hdc: HDC, pbmih: ?&const BITMAPINFOHEADER, flInit: DWORD, pjBits: ?&const c_void, pbmi: ?&const BITMAPINFO, iUsage: UINT) -> HBITMAP;
pub extern fn CreateDIBPatternBrush(h: HGLOBAL, iUsage: UINT) -> HBRUSH;
pub extern fn CreateDIBPatternBrushPt(lpPackedDIB: ?&const c_void, iUsage: UINT) -> HBRUSH;
pub extern fn CreateEllipticRgn(x1: c_int, y1: c_int, x2: c_int, y2: c_int) -> HRGN;
pub extern fn CreateEllipticRgnIndirect(lprect: ?&const RECT) -> HRGN;
pub extern fn CreateFontIndirectA(lplf: ?&const LOGFONTA) -> HFONT;
pub extern fn CreateFontIndirectW(lplf: ?&const LOGFONTW) -> HFONT;
pub extern fn CreateFontA(cHeight: c_int, cWidth: c_int, cEscapement: c_int, cOrientation: c_int, cWeight: c_int, bItalic: DWORD, bUnderline: DWORD, bStrikeOut: DWORD, iCharSet: DWORD, iOutPrecision: DWORD, iClipPrecision: DWORD, iQuality: DWORD, iPitchAndFamily: DWORD, pszFaceName: LPCSTR) -> HFONT;
pub extern fn CreateFontW(cHeight: c_int, cWidth: c_int, cEscapement: c_int, cOrientation: c_int, cWeight: c_int, bItalic: DWORD, bUnderline: DWORD, bStrikeOut: DWORD, iCharSet: DWORD, iOutPrecision: DWORD, iClipPrecision: DWORD, iQuality: DWORD, iPitchAndFamily: DWORD, pszFaceName: LPCWSTR) -> HFONT;
pub extern fn CreateHatchBrush(iHatch: c_int, color: COLORREF) -> HBRUSH;
pub extern fn CreateICA(pszDriver: LPCSTR, pszDevice: LPCSTR, pszPort: LPCSTR, pdm: ?&const DEVMODEA) -> HDC;
pub extern fn CreateICW(pszDriver: LPCWSTR, pszDevice: LPCWSTR, pszPort: LPCWSTR, pdm: ?&const DEVMODEW) -> HDC;
pub extern fn CreateMetaFileA(pszFile: LPCSTR) -> HDC;
pub extern fn CreateMetaFileW(pszFile: LPCWSTR) -> HDC;
pub extern fn CreatePalette(plpal: ?&const LOGPALETTE) -> HPALETTE;
pub extern fn CreatePen(iStyle: c_int, cWidth: c_int, color: COLORREF) -> HPEN;
pub extern fn CreatePenIndirect(plpen: ?&const LOGPEN) -> HPEN;
pub extern fn CreatePolyPolygonRgn(pptl: ?&const POINT, pc: ?&const INT, cPoly: c_int, iMode: c_int) -> HRGN;
pub extern fn CreatePatternBrush(hbm: HBITMAP) -> HBRUSH;
pub extern fn CreateRectRgn(x1: c_int, y1: c_int, x2: c_int, y2: c_int) -> HRGN;
pub extern fn CreateRectRgnIndirect(lprect: ?&const RECT) -> HRGN;
pub extern fn CreateRoundRectRgn(x1: c_int, y1: c_int, x2: c_int, y2: c_int, w: c_int, h: c_int) -> HRGN;
pub extern fn CreateScalableFontResourceA(fdwHidden: DWORD, lpszFont: LPCSTR, lpszFile: LPCSTR, lpszPath: LPCSTR) -> BOOL;
pub extern fn CreateScalableFontResourceW(fdwHidden: DWORD, lpszFont: LPCWSTR, lpszFile: LPCWSTR, lpszPath: LPCWSTR) -> BOOL;
pub extern fn CreateSolidBrush(color: COLORREF) -> HBRUSH;
pub extern fn DeleteDC(hdc: HDC) -> BOOL;
pub extern fn DeleteMetaFile(hmf: HMETAFILE) -> BOOL;
pub extern fn DeleteObject(ho: HGDIOBJ) -> BOOL;
pub extern fn DescribePixelFormat(hdc: HDC, iPixelFormat: c_int, nBytes: UINT, ppfd: LPPIXELFORMATDESCRIPTOR) -> c_int;
pub const LPFNDEVMODE = ?extern fn(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, LPDEVMODE, LPSTR, UINT) -> UINT;
pub const LPFNDEVCAPS = ?extern fn(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE) -> DWORD;
pub extern fn DeviceCapabilitiesA(pDevice: LPCSTR, pPort: LPCSTR, fwCapability: WORD, pOutput: LPSTR, pDevMode: ?&const DEVMODEA) -> c_int;
pub extern fn DeviceCapabilitiesW(pDevice: LPCWSTR, pPort: LPCWSTR, fwCapability: WORD, pOutput: LPWSTR, pDevMode: ?&const DEVMODEW) -> c_int;
pub extern fn DrawEscape(hdc: HDC, iEscape: c_int, cjIn: c_int, lpIn: LPCSTR) -> c_int;
pub extern fn Ellipse(hdc: HDC, left: c_int, top: c_int, right: c_int, bottom: c_int) -> BOOL;
pub extern fn EnumFontFamiliesExA(hdc: HDC, lpLogfont: LPLOGFONTA, lpProc: FONTENUMPROCA, lParam: LPARAM, dwFlags: DWORD) -> c_int;
pub extern fn EnumFontFamiliesExW(hdc: HDC, lpLogfont: LPLOGFONTW, lpProc: FONTENUMPROCW, lParam: LPARAM, dwFlags: DWORD) -> c_int;
pub extern fn EnumFontFamiliesA(hdc: HDC, lpLogfont: LPCSTR, lpProc: FONTENUMPROCA, lParam: LPARAM) -> c_int;
pub extern fn EnumFontFamiliesW(hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM) -> c_int;
pub extern fn EnumFontsA(hdc: HDC, lpLogfont: LPCSTR, lpProc: FONTENUMPROCA, lParam: LPARAM) -> c_int;
pub extern fn EnumFontsW(hdc: HDC, lpLogfont: LPCWSTR, lpProc: FONTENUMPROCW, lParam: LPARAM) -> c_int;
pub extern fn EnumObjects(hdc: HDC, nType: c_int, lpFunc: GOBJENUMPROC, lParam: LPARAM) -> c_int;
pub extern fn EqualRgn(hrgn1: HRGN, hrgn2: HRGN) -> BOOL;
pub extern fn Escape(hdc: HDC, iEscape: c_int, cjIn: c_int, pvIn: LPCSTR, pvOut: LPVOID) -> c_int;
pub extern fn ExtEscape(hdc: HDC, iEscape: c_int, cjInput: c_int, lpInData: LPCSTR, cjOutput: c_int, lpOutData: LPSTR) -> c_int;
pub extern fn ExcludeClipRect(hdc: HDC, left: c_int, top: c_int, right: c_int, bottom: c_int) -> c_int;
pub extern fn ExtCreateRegion(lpx: ?&const XFORM, nCount: DWORD, lpData: ?&const RGNDATA) -> HRGN;
pub extern fn ExtFloodFill(hdc: HDC, x: c_int, y: c_int, color: COLORREF, type: UINT) -> BOOL;
pub extern fn FillRgn(hdc: HDC, hrgn: HRGN, hbr: HBRUSH) -> BOOL;
pub extern fn FloodFill(hdc: HDC, x: c_int, y: c_int, color: COLORREF) -> BOOL;
pub extern fn FrameRgn(hdc: HDC, hrgn: HRGN, hbr: HBRUSH, w: c_int, h: c_int) -> BOOL;
pub extern fn GetROP2(hdc: HDC) -> c_int;
pub extern fn GetAspectRatioFilterEx(hdc: HDC, lpsize: LPSIZE) -> BOOL;
pub extern fn GetBkColor(hdc: HDC) -> COLORREF;
pub extern fn GetDCBrushColor(hdc: HDC) -> COLORREF;
pub extern fn GetDCPenColor(hdc: HDC) -> COLORREF;
pub extern fn GetBkMode(hdc: HDC) -> c_int;
pub extern fn GetBitmapBits(hbit: HBITMAP, cb: LONG, lpvBits: LPVOID) -> LONG;
pub extern fn GetBitmapDimensionEx(hbit: HBITMAP, lpsize: LPSIZE) -> BOOL;
pub extern fn GetBoundsRect(hdc: HDC, lprect: LPRECT, flags: UINT) -> UINT;
pub extern fn GetBrushOrgEx(hdc: HDC, lppt: LPPOINT) -> BOOL;
pub extern fn GetCharWidthA(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT) -> BOOL;
pub extern fn GetCharWidthW(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT) -> BOOL;
pub extern fn GetCharWidth32A(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT) -> BOOL;
pub extern fn GetCharWidth32W(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: LPINT) -> BOOL;
pub extern fn GetCharWidthFloatA(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT) -> BOOL;
pub extern fn GetCharWidthFloatW(hdc: HDC, iFirst: UINT, iLast: UINT, lpBuffer: PFLOAT) -> BOOL;
pub extern fn GetCharABCWidthsA(hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC) -> BOOL;
pub extern fn GetCharABCWidthsW(hdc: HDC, wFirst: UINT, wLast: UINT, lpABC: LPABC) -> BOOL;
pub extern fn GetCharABCWidthsFloatA(hdc: HDC, iFirst: UINT, iLast: UINT, lpABC: LPABCFLOAT) -> BOOL;
pub extern fn GetCharABCWidthsFloatW(hdc: HDC, iFirst: UINT, iLast: UINT, lpABC: LPABCFLOAT) -> BOOL;
pub extern fn GetClipBox(hdc: HDC, lprect: LPRECT) -> c_int;
pub extern fn GetClipRgn(hdc: HDC, hrgn: HRGN) -> c_int;
pub extern fn GetMetaRgn(hdc: HDC, hrgn: HRGN) -> c_int;
pub extern fn GetCurrentObject(hdc: HDC, type: UINT) -> HGDIOBJ;
pub extern fn GetCurrentPositionEx(hdc: HDC, lppt: LPPOINT) -> BOOL;
pub extern fn GetDeviceCaps(hdc: HDC, index: c_int) -> c_int;
pub extern fn GetDIBits(hdc: HDC, hbm: HBITMAP, start: UINT, cLines: UINT, lpvBits: LPVOID, lpbmi: LPBITMAPINFO, usage: UINT) -> c_int;
pub extern fn GetFontData(hdc: HDC, dwTable: DWORD, dwOffset: DWORD, pvBuffer: PVOID, cjBuffer: DWORD) -> DWORD;
pub extern fn GetGlyphOutlineA(hdc: HDC, uChar: UINT, fuFormat: UINT, lpgm: LPGLYPHMETRICS, cjBuffer: DWORD, pvBuffer: LPVOID, lpmat2: ?&const MAT2) -> DWORD;
pub extern fn GetGlyphOutlineW(hdc: HDC, uChar: UINT, fuFormat: UINT, lpgm: LPGLYPHMETRICS, cjBuffer: DWORD, pvBuffer: LPVOID, lpmat2: ?&const MAT2) -> DWORD;
pub extern fn GetGraphicsMode(hdc: HDC) -> c_int;
pub extern fn GetMapMode(hdc: HDC) -> c_int;
pub extern fn GetMetaFileBitsEx(hMF: HMETAFILE, cbBuffer: UINT, lpData: LPVOID) -> UINT;
pub extern fn GetMetaFileA(lpName: LPCSTR) -> HMETAFILE;
pub extern fn GetMetaFileW(lpName: LPCWSTR) -> HMETAFILE;
pub extern fn GetNearestColor(hdc: HDC, color: COLORREF) -> COLORREF;
pub extern fn GetNearestPaletteIndex(h: HPALETTE, color: COLORREF) -> UINT;
pub extern fn GetObjectType(h: HGDIOBJ) -> DWORD;
pub extern fn GetOutlineTextMetricsA(hdc: HDC, cjCopy: UINT, potm: LPOUTLINETEXTMETRICA) -> UINT;
pub extern fn GetOutlineTextMetricsW(hdc: HDC, cjCopy: UINT, potm: LPOUTLINETEXTMETRICW) -> UINT;
pub extern fn GetPaletteEntries(hpal: HPALETTE, iStart: UINT, cEntries: UINT, pPalEntries: LPPALETTEENTRY) -> UINT;
pub extern fn GetPixel(hdc: HDC, x: c_int, y: c_int) -> COLORREF;
pub extern fn GetPixelFormat(hdc: HDC) -> c_int;
pub extern fn GetPolyFillMode(hdc: HDC) -> c_int;
pub extern fn GetRasterizerCaps(lpraststat: LPRASTERIZER_STATUS, cjBytes: UINT) -> BOOL;
pub extern fn GetRandomRgn(hdc: HDC, hrgn: HRGN, i: INT) -> c_int;
pub extern fn GetRegionData(hrgn: HRGN, nCount: DWORD, lpRgnData: LPRGNDATA) -> DWORD;
pub extern fn GetRgnBox(hrgn: HRGN, lprc: LPRECT) -> c_int;
pub extern fn GetStockObject(i: c_int) -> HGDIOBJ;
pub extern fn GetStretchBltMode(hdc: HDC) -> c_int;
pub extern fn GetSystemPaletteEntries(hdc: HDC, iStart: UINT, cEntries: UINT, pPalEntries: LPPALETTEENTRY) -> UINT;
pub extern fn GetSystemPaletteUse(hdc: HDC) -> UINT;
pub extern fn GetTextCharacterExtra(hdc: HDC) -> c_int;
pub extern fn GetTextAlign(hdc: HDC) -> UINT;
pub extern fn GetTextColor(hdc: HDC) -> COLORREF;
pub extern fn GetTextExtentPointA(hdc: HDC, lpString: LPCSTR, c: c_int, lpsz: LPSIZE) -> BOOL;
pub extern fn GetTextExtentPointW(hdc: HDC, lpString: LPCWSTR, c: c_int, lpsz: LPSIZE) -> BOOL;
pub extern fn GetTextExtentPoint32A(hdc: HDC, lpString: LPCSTR, c: c_int, psizl: LPSIZE) -> BOOL;
pub extern fn GetTextExtentPoint32W(hdc: HDC, lpString: LPCWSTR, c: c_int, psizl: LPSIZE) -> BOOL;
pub extern fn GetTextExtentExPointA(hdc: HDC, lpszString: LPCSTR, cchString: c_int, nMaxExtent: c_int, lpnFit: LPINT, lpnDx: LPINT, lpSize: LPSIZE) -> BOOL;
pub extern fn GetTextExtentExPointW(hdc: HDC, lpszString: LPCWSTR, cchString: c_int, nMaxExtent: c_int, lpnFit: LPINT, lpnDx: LPINT, lpSize: LPSIZE) -> BOOL;
pub extern fn GetTextCharset(hdc: HDC) -> c_int;
pub extern fn GetTextCharsetInfo(hdc: HDC, lpSig: LPFONTSIGNATURE, dwFlags: DWORD) -> c_int;
pub extern fn TranslateCharsetInfo(lpSrc: ?&DWORD, lpCs: LPCHARSETINFO, dwFlags: DWORD) -> BOOL;
pub extern fn GetFontLanguageInfo(hdc: HDC) -> DWORD;
pub extern fn GetCharacterPlacementA(hdc: HDC, lpString: LPCSTR, nCount: c_int, nMexExtent: c_int, lpResults: LPGCP_RESULTSA, dwFlags: DWORD) -> DWORD;
pub extern fn GetCharacterPlacementW(hdc: HDC, lpString: LPCWSTR, nCount: c_int, nMexExtent: c_int, lpResults: LPGCP_RESULTSW, dwFlags: DWORD) -> DWORD;
pub const struct_tagWCRANGE = extern struct {
wcLow: WCHAR,
cGlyphs: USHORT,
};
pub const WCRANGE = struct_tagWCRANGE;
pub const PWCRANGE = ?&struct_tagWCRANGE;
pub const LPWCRANGE = ?&struct_tagWCRANGE;
pub const struct_tagGLYPHSET = extern struct {
cbThis: DWORD,
flAccel: DWORD,
cGlyphsSupported: DWORD,
cRanges: DWORD,
ranges: [1]WCRANGE,
};
pub const GLYPHSET = struct_tagGLYPHSET;
pub const PGLYPHSET = ?&struct_tagGLYPHSET;
pub const LPGLYPHSET = ?&struct_tagGLYPHSET;
pub extern fn GetFontUnicodeRanges(hdc: HDC, lpgs: LPGLYPHSET) -> DWORD;
pub extern fn GetGlyphIndicesA(hdc: HDC, lpstr: LPCSTR, c: c_int, pgi: LPWORD, fl: DWORD) -> DWORD;
pub extern fn GetGlyphIndicesW(hdc: HDC, lpstr: LPCWSTR, c: c_int, pgi: LPWORD, fl: DWORD) -> DWORD;
pub extern fn GetTextExtentPointI(hdc: HDC, pgiIn: LPWORD, cgi: c_int, psize: LPSIZE) -> BOOL;
pub extern fn GetTextExtentExPointI(hdc: HDC, lpwszString: LPWORD, cwchString: c_int, nMaxExtent: c_int, lpnFit: LPINT, lpnDx: LPINT, lpSize: LPSIZE) -> BOOL;
pub extern fn GetCharWidthI(hdc: HDC, giFirst: UINT, cgi: UINT, pgi: LPWORD, piWidths: LPINT) -> BOOL;
pub extern fn GetCharABCWidthsI(hdc: HDC, giFirst: UINT, cgi: UINT, pgi: LPWORD, pabc: LPABC) -> BOOL;
pub const struct_tagDESIGNVECTOR = extern struct {
dvReserved: DWORD,
dvNumAxes: DWORD,
dvValues: [16]LONG,
};
pub const DESIGNVECTOR = struct_tagDESIGNVECTOR;
pub const PDESIGNVECTOR = ?&struct_tagDESIGNVECTOR;
pub const LPDESIGNVECTOR = ?&struct_tagDESIGNVECTOR;
pub extern fn AddFontResourceExA(name: LPCSTR, fl: DWORD, res: PVOID) -> c_int;
pub extern fn AddFontResourceExW(name: LPCWSTR, fl: DWORD, res: PVOID) -> c_int;
pub extern fn RemoveFontResourceExA(name: LPCSTR, fl: DWORD, pdv: PVOID) -> BOOL;
pub extern fn RemoveFontResourceExW(name: LPCWSTR, fl: DWORD, pdv: PVOID) -> BOOL;
pub extern fn AddFontMemResourceEx(pFileView: PVOID, cjSize: DWORD, pvResrved: PVOID, pNumFonts: ?&DWORD) -> HANDLE;
pub extern fn RemoveFontMemResourceEx(h: HANDLE) -> BOOL;
pub const struct_tagAXISINFOA = extern struct {
axMinValue: LONG,
axMaxValue: LONG,
axAxisName: [16]BYTE,
};
pub const AXISINFOA = struct_tagAXISINFOA;
pub const PAXISINFOA = ?&struct_tagAXISINFOA;
pub const LPAXISINFOA = ?&struct_tagAXISINFOA;
pub const struct_tagAXISINFOW = extern struct {
axMinValue: LONG,
axMaxValue: LONG,
axAxisName: [16]WCHAR,
};
pub const AXISINFOW = struct_tagAXISINFOW;
pub const PAXISINFOW = ?&struct_tagAXISINFOW;
pub const LPAXISINFOW = ?&struct_tagAXISINFOW;
pub const AXISINFO = AXISINFOA;
pub const PAXISINFO = PAXISINFOA;
pub const LPAXISINFO = LPAXISINFOA;
pub const struct_tagAXESLISTA = extern struct {
axlReserved: DWORD,
axlNumAxes: DWORD,
axlAxisInfo: [16]AXISINFOA,
};
pub const AXESLISTA = struct_tagAXESLISTA;
pub const PAXESLISTA = ?&struct_tagAXESLISTA;
pub const LPAXESLISTA = ?&struct_tagAXESLISTA;
pub const struct_tagAXESLISTW = extern struct {
axlReserved: DWORD,
axlNumAxes: DWORD,
axlAxisInfo: [16]AXISINFOW,
};
pub const AXESLISTW = struct_tagAXESLISTW;
pub const PAXESLISTW = ?&struct_tagAXESLISTW;
pub const LPAXESLISTW = ?&struct_tagAXESLISTW;
pub const AXESLIST = AXESLISTA;
pub const PAXESLIST = PAXESLISTA;
pub const LPAXESLIST = LPAXESLISTA;
pub const struct_tagENUMLOGFONTEXDVA = extern struct {
elfEnumLogfontEx: ENUMLOGFONTEXA,
elfDesignVector: DESIGNVECTOR,
};
pub const ENUMLOGFONTEXDVA = struct_tagENUMLOGFONTEXDVA;
pub const PENUMLOGFONTEXDVA = ?&struct_tagENUMLOGFONTEXDVA;
pub const LPENUMLOGFONTEXDVA = ?&struct_tagENUMLOGFONTEXDVA;
pub const struct_tagENUMLOGFONTEXDVW = extern struct {
elfEnumLogfontEx: ENUMLOGFONTEXW,
elfDesignVector: DESIGNVECTOR,
};
pub const ENUMLOGFONTEXDVW = struct_tagENUMLOGFONTEXDVW;
pub const PENUMLOGFONTEXDVW = ?&struct_tagENUMLOGFONTEXDVW;
pub const LPENUMLOGFONTEXDVW = ?&struct_tagENUMLOGFONTEXDVW;
pub const ENUMLOGFONTEXDV = ENUMLOGFONTEXDVA;
pub const PENUMLOGFONTEXDV = PENUMLOGFONTEXDVA;
pub const LPENUMLOGFONTEXDV = LPENUMLOGFONTEXDVA;
pub extern fn CreateFontIndirectExA(arg0: ?&const ENUMLOGFONTEXDVA) -> HFONT;
pub extern fn CreateFontIndirectExW(arg0: ?&const ENUMLOGFONTEXDVW) -> HFONT;
pub const struct_tagENUMTEXTMETRICA = extern struct {
etmNewTextMetricEx: NEWTEXTMETRICEXA,
etmAxesList: AXESLISTA,
};
pub const ENUMTEXTMETRICA = struct_tagENUMTEXTMETRICA;
pub const PENUMTEXTMETRICA = ?&struct_tagENUMTEXTMETRICA;
pub const LPENUMTEXTMETRICA = ?&struct_tagENUMTEXTMETRICA;
pub const struct_tagENUMTEXTMETRICW = extern struct {
etmNewTextMetricEx: NEWTEXTMETRICEXW,
etmAxesList: AXESLISTW,
};
pub const ENUMTEXTMETRICW = struct_tagENUMTEXTMETRICW;
pub const PENUMTEXTMETRICW = ?&struct_tagENUMTEXTMETRICW;
pub const LPENUMTEXTMETRICW = ?&struct_tagENUMTEXTMETRICW;
pub const ENUMTEXTMETRIC = ENUMTEXTMETRICA;
pub const PENUMTEXTMETRIC = PENUMTEXTMETRICA;
pub const LPENUMTEXTMETRIC = LPENUMTEXTMETRICA;
pub extern fn GetViewportExtEx(hdc: HDC, lpsize: LPSIZE) -> BOOL;
pub extern fn GetViewportOrgEx(hdc: HDC, lppoint: LPPOINT) -> BOOL;
pub extern fn GetWindowExtEx(hdc: HDC, lpsize: LPSIZE) -> BOOL;
pub extern fn GetWindowOrgEx(hdc: HDC, lppoint: LPPOINT) -> BOOL;
pub extern fn IntersectClipRect(hdc: HDC, left: c_int, top: c_int, right: c_int, bottom: c_int) -> c_int;
pub extern fn InvertRgn(hdc: HDC, hrgn: HRGN) -> BOOL;
pub extern fn LineDDA(xStart: c_int, yStart: c_int, xEnd: c_int, yEnd: c_int, lpProc: LINEDDAPROC, data: LPARAM) -> BOOL;
pub extern fn LineTo(hdc: HDC, x: c_int, y: c_int) -> BOOL;
pub extern fn MaskBlt(hdcDest: HDC, xDest: c_int, yDest: c_int, width: c_int, height: c_int, hdcSrc: HDC, xSrc: c_int, ySrc: c_int, hbmMask: HBITMAP, xMask: c_int, yMask: c_int, rop: DWORD) -> BOOL;
pub extern fn PlgBlt(hdcDest: HDC, lpPoint: ?&const POINT, hdcSrc: HDC, xSrc: c_int, ySrc: c_int, width: c_int, height: c_int, hbmMask: HBITMAP, xMask: c_int, yMask: c_int) -> BOOL;
pub extern fn OffsetClipRgn(hdc: HDC, x: c_int, y: c_int) -> c_int;
pub extern fn OffsetRgn(hrgn: HRGN, x: c_int, y: c_int) -> c_int;
pub extern fn PatBlt(hdc: HDC, x: c_int, y: c_int, w: c_int, h: c_int, rop: DWORD) -> BOOL;
pub extern fn Pie(hdc: HDC, left: c_int, top: c_int, right: c_int, bottom: c_int, xr1: c_int, yr1: c_int, xr2: c_int, yr2: c_int) -> BOOL;
pub extern fn PlayMetaFile(hdc: HDC, hmf: HMETAFILE) -> BOOL;
pub extern fn PaintRgn(hdc: HDC, hrgn: HRGN) -> BOOL;
pub extern fn PolyPolygon(hdc: HDC, apt: ?&const POINT, asz: ?&const INT, csz: c_int) -> BOOL;
pub extern fn PtInRegion(hrgn: HRGN, x: c_int, y: c_int) -> BOOL;
pub extern fn PtVisible(hdc: HDC, x: c_int, y: c_int) -> BOOL;
pub extern fn RectInRegion(hrgn: HRGN, lprect: ?&const RECT) -> BOOL;
pub extern fn RectVisible(hdc: HDC, lprect: ?&const RECT) -> BOOL;
pub extern fn Rectangle(hdc: HDC, left: c_int, top: c_int, right: c_int, bottom: c_int) -> BOOL;
pub extern fn RestoreDC(hdc: HDC, nSavedDC: c_int) -> BOOL;
pub extern fn ResetDCA(hdc: HDC, lpdm: ?&const DEVMODEA) -> HDC;
pub extern fn ResetDCW(hdc: HDC, lpdm: ?&const DEVMODEW) -> HDC;
pub extern fn RealizePalette(hdc: HDC) -> UINT;
pub extern fn RemoveFontResourceA(lpFileName: LPCSTR) -> BOOL;
pub extern fn RemoveFontResourceW(lpFileName: LPCWSTR) -> BOOL;
pub extern fn RoundRect(hdc: HDC, left: c_int, top: c_int, right: c_int, bottom: c_int, width: c_int, height: c_int) -> BOOL;
pub extern fn ResizePalette(hpal: HPALETTE, n: UINT) -> BOOL;
pub extern fn SaveDC(hdc: HDC) -> c_int;
pub extern fn SelectClipRgn(hdc: HDC, hrgn: HRGN) -> c_int;
pub extern fn ExtSelectClipRgn(hdc: HDC, hrgn: HRGN, mode: c_int) -> c_int;
pub extern fn SetMetaRgn(hdc: HDC) -> c_int;
pub extern fn SelectObject(hdc: HDC, h: HGDIOBJ) -> HGDIOBJ;
pub extern fn SelectPalette(hdc: HDC, hPal: HPALETTE, bForceBkgd: BOOL) -> HPALETTE;
pub extern fn SetBkColor(hdc: HDC, color: COLORREF) -> COLORREF;
pub extern fn SetDCBrushColor(hdc: HDC, color: COLORREF) -> COLORREF;
pub extern fn SetDCPenColor(hdc: HDC, color: COLORREF) -> COLORREF;
pub extern fn SetBkMode(hdc: HDC, mode: c_int) -> c_int;
pub extern fn SetBitmapBits(hbm: HBITMAP, cb: DWORD, pvBits: ?&const c_void) -> LONG;
pub extern fn SetBoundsRect(hdc: HDC, lprect: ?&const RECT, flags: UINT) -> UINT;
pub extern fn SetDIBits(hdc: HDC, hbm: HBITMAP, start: UINT, cLines: UINT, lpBits: ?&const c_void, lpbmi: ?&const BITMAPINFO, ColorUse: UINT) -> c_int;
pub extern fn SetDIBitsToDevice(hdc: HDC, xDest: c_int, yDest: c_int, w: DWORD, h: DWORD, xSrc: c_int, ySrc: c_int, StartScan: UINT, cLines: UINT, lpvBits: ?&const c_void, lpbmi: ?&const BITMAPINFO, ColorUse: UINT) -> c_int;
pub extern fn SetMapperFlags(hdc: HDC, flags: DWORD) -> DWORD;
pub extern fn SetGraphicsMode(hdc: HDC, iMode: c_int) -> c_int;
pub extern fn SetMapMode(hdc: HDC, iMode: c_int) -> c_int;
pub extern fn SetLayout(hdc: HDC, l: DWORD) -> DWORD;
pub extern fn GetLayout(hdc: HDC) -> DWORD;
pub extern fn SetMetaFileBitsEx(cbBuffer: UINT, lpData: ?&const BYTE) -> HMETAFILE;
pub extern fn SetPaletteEntries(hpal: HPALETTE, iStart: UINT, cEntries: UINT, pPalEntries: ?&const PALETTEENTRY) -> UINT;
pub extern fn SetPixel(hdc: HDC, x: c_int, y: c_int, color: COLORREF) -> COLORREF;
pub extern fn SetPixelV(hdc: HDC, x: c_int, y: c_int, color: COLORREF) -> BOOL;
pub extern fn SetPixelFormat(hdc: HDC, format: c_int, ppfd: ?&const PIXELFORMATDESCRIPTOR) -> BOOL;
pub extern fn SetPolyFillMode(hdc: HDC, mode: c_int) -> c_int;
pub extern fn StretchBlt(hdcDest: HDC, xDest: c_int, yDest: c_int, wDest: c_int, hDest: c_int, hdcSrc: HDC, xSrc: c_int, ySrc: c_int, wSrc: c_int, hSrc: c_int, rop: DWORD) -> BOOL;
pub extern fn SetRectRgn(hrgn: HRGN, left: c_int, top: c_int, right: c_int, bottom: c_int) -> BOOL;
pub extern fn StretchDIBits(hdc: HDC, xDest: c_int, yDest: c_int, DestWidth: c_int, DestHeight: c_int, xSrc: c_int, ySrc: c_int, SrcWidth: c_int, SrcHeight: c_int, lpBits: ?&const c_void, lpbmi: ?&const BITMAPINFO, iUsage: UINT, rop: DWORD) -> c_int;
pub extern fn SetROP2(hdc: HDC, rop2: c_int) -> c_int;
pub extern fn SetStretchBltMode(hdc: HDC, mode: c_int) -> c_int;
pub extern fn SetSystemPaletteUse(hdc: HDC, @"use": UINT) -> UINT;
pub extern fn SetTextCharacterExtra(hdc: HDC, extra: c_int) -> c_int;
pub extern fn SetTextColor(hdc: HDC, color: COLORREF) -> COLORREF;
pub extern fn SetTextAlign(hdc: HDC, @"align": UINT) -> UINT;
pub extern fn SetTextJustification(hdc: HDC, extra: c_int, count: c_int) -> BOOL;
pub extern fn UpdateColors(hdc: HDC) -> BOOL;
pub const COLOR16 = USHORT;
pub const struct__TRIVERTEX = extern struct {
x: LONG,
y: LONG,
Red: COLOR16,
Green: COLOR16,
Blue: COLOR16,
Alpha: COLOR16,
};
pub const TRIVERTEX = struct__TRIVERTEX;
pub const PTRIVERTEX = ?&struct__TRIVERTEX;
pub const LPTRIVERTEX = ?&struct__TRIVERTEX;
pub const struct__GRADIENT_TRIANGLE = extern struct {
Vertex1: ULONG,
Vertex2: ULONG,
Vertex3: ULONG,
};
pub const GRADIENT_TRIANGLE = struct__GRADIENT_TRIANGLE;
pub const PGRADIENT_TRIANGLE = ?&struct__GRADIENT_TRIANGLE;
pub const LPGRADIENT_TRIANGLE = ?&struct__GRADIENT_TRIANGLE;
pub const struct__GRADIENT_RECT = extern struct {
UpperLeft: ULONG,
LowerRight: ULONG,
};
pub const GRADIENT_RECT = struct__GRADIENT_RECT;
pub const PGRADIENT_RECT = ?&struct__GRADIENT_RECT;
pub const LPGRADIENT_RECT = ?&struct__GRADIENT_RECT;
pub const struct__BLENDFUNCTION = extern struct {
BlendOp: BYTE,
BlendFlags: BYTE,
SourceConstantAlpha: BYTE,
AlphaFormat: BYTE,
};
pub const BLENDFUNCTION = struct__BLENDFUNCTION;
pub const PBLENDFUNCTION = ?&struct__BLENDFUNCTION;
pub extern fn AlphaBlend(hdcDest: HDC, xoriginDest: c_int, yoriginDest: c_int, wDest: c_int, hDest: c_int, hdcSrc: HDC, xoriginSrc: c_int, yoriginSrc: c_int, wSrc: c_int, hSrc: c_int, ftn: BLENDFUNCTION) -> BOOL;
pub extern fn TransparentBlt(hdcDest: HDC, xoriginDest: c_int, yoriginDest: c_int, wDest: c_int, hDest: c_int, hdcSrc: HDC, xoriginSrc: c_int, yoriginSrc: c_int, wSrc: c_int, hSrc: c_int, crTransparent: UINT) -> BOOL;
pub extern fn GradientFill(hdc: HDC, pVertex: PTRIVERTEX, nVertex: ULONG, pMesh: PVOID, nMesh: ULONG, ulMode: ULONG) -> BOOL;
pub extern fn GdiAlphaBlend(hdcDest: HDC, xoriginDest: c_int, yoriginDest: c_int, wDest: c_int, hDest: c_int, hdcSrc: HDC, xoriginSrc: c_int, yoriginSrc: c_int, wSrc: c_int, hSrc: c_int, ftn: BLENDFUNCTION) -> BOOL;
pub extern fn GdiTransparentBlt(hdcDest: HDC, xoriginDest: c_int, yoriginDest: c_int, wDest: c_int, hDest: c_int, hdcSrc: HDC, xoriginSrc: c_int, yoriginSrc: c_int, wSrc: c_int, hSrc: c_int, crTransparent: UINT) -> BOOL;
pub extern fn GdiGradientFill(hdc: HDC, pVertex: PTRIVERTEX, nVertex: ULONG, pMesh: PVOID, nCount: ULONG, ulMode: ULONG) -> BOOL;
pub extern fn PlayMetaFileRecord(hdc: HDC, lpHandleTable: LPHANDLETABLE, lpMR: LPMETARECORD, noObjs: UINT) -> BOOL;
pub const MFENUMPROC = ?extern fn(HDC, ?&HANDLETABLE, ?&METARECORD, c_int, LPARAM) -> c_int;
pub extern fn EnumMetaFile(hdc: HDC, hmf: HMETAFILE, proc: MFENUMPROC, param: LPARAM) -> BOOL;
pub const ENHMFENUMPROC = ?extern fn(HDC, ?&HANDLETABLE, ?&const ENHMETARECORD, c_int, LPARAM) -> c_int;
pub extern fn CloseEnhMetaFile(hdc: HDC) -> HENHMETAFILE;
pub extern fn CopyEnhMetaFileA(hEnh: HENHMETAFILE, lpFileName: LPCSTR) -> HENHMETAFILE;
pub extern fn CopyEnhMetaFileW(hEnh: HENHMETAFILE, lpFileName: LPCWSTR) -> HENHMETAFILE;
pub extern fn CreateEnhMetaFileA(hdc: HDC, lpFilename: LPCSTR, lprc: ?&const RECT, lpDesc: LPCSTR) -> HDC;
pub extern fn CreateEnhMetaFileW(hdc: HDC, lpFilename: LPCWSTR, lprc: ?&const RECT, lpDesc: LPCWSTR) -> HDC;
pub extern fn DeleteEnhMetaFile(hmf: HENHMETAFILE) -> BOOL;
pub extern fn EnumEnhMetaFile(hdc: HDC, hmf: HENHMETAFILE, proc: ENHMFENUMPROC, param: LPVOID, lpRect: ?&const RECT) -> BOOL;
pub extern fn GetEnhMetaFileA(lpName: LPCSTR) -> HENHMETAFILE;
pub extern fn GetEnhMetaFileW(lpName: LPCWSTR) -> HENHMETAFILE;
pub extern fn GetEnhMetaFileBits(hEMF: HENHMETAFILE, nSize: UINT, lpData: LPBYTE) -> UINT;
pub extern fn GetEnhMetaFileDescriptionA(hemf: HENHMETAFILE, cchBuffer: UINT, lpDescription: LPSTR) -> UINT;
pub extern fn GetEnhMetaFileDescriptionW(hemf: HENHMETAFILE, cchBuffer: UINT, lpDescription: LPWSTR) -> UINT;
pub extern fn GetEnhMetaFileHeader(hemf: HENHMETAFILE, nSize: UINT, lpEnhMetaHeader: LPENHMETAHEADER) -> UINT;
pub extern fn GetEnhMetaFilePaletteEntries(hemf: HENHMETAFILE, nNumEntries: UINT, lpPaletteEntries: LPPALETTEENTRY) -> UINT;
pub extern fn GetEnhMetaFilePixelFormat(hemf: HENHMETAFILE, cbBuffer: UINT, ppfd: ?&PIXELFORMATDESCRIPTOR) -> UINT;
pub extern fn GetWinMetaFileBits(hemf: HENHMETAFILE, cbData16: UINT, pData16: LPBYTE, iMapMode: INT, hdcRef: HDC) -> UINT;
pub extern fn PlayEnhMetaFile(hdc: HDC, hmf: HENHMETAFILE, lprect: ?&const RECT) -> BOOL;
pub extern fn PlayEnhMetaFileRecord(hdc: HDC, pht: LPHANDLETABLE, pmr: ?&const ENHMETARECORD, cht: UINT) -> BOOL;
pub extern fn SetEnhMetaFileBits(nSize: UINT, pb: ?&const BYTE) -> HENHMETAFILE;
pub extern fn SetWinMetaFileBits(nSize: UINT, lpMeta16Data: ?&const BYTE, hdcRef: HDC, lpMFP: ?&const METAFILEPICT) -> HENHMETAFILE;
pub extern fn GdiComment(hdc: HDC, nSize: UINT, lpData: ?&const BYTE) -> BOOL;
pub extern fn GetTextMetricsA(hdc: HDC, lptm: LPTEXTMETRICA) -> BOOL;
pub extern fn GetTextMetricsW(hdc: HDC, lptm: LPTEXTMETRICW) -> BOOL;
pub const struct_tagDIBSECTION = extern struct {
dsBm: BITMAP,
dsBmih: BITMAPINFOHEADER,
dsBitfields: [3]DWORD,
dshSection: HANDLE,
dsOffset: DWORD,
};
pub const DIBSECTION = struct_tagDIBSECTION;
pub const LPDIBSECTION = ?&struct_tagDIBSECTION;
pub const PDIBSECTION = ?&struct_tagDIBSECTION;
pub extern fn AngleArc(hdc: HDC, x: c_int, y: c_int, r: DWORD, StartAngle: FLOAT, SweepAngle: FLOAT) -> BOOL;
pub extern fn PolyPolyline(hdc: HDC, apt: ?&const POINT, asz: ?&const DWORD, csz: DWORD) -> BOOL;
pub extern fn GetWorldTransform(hdc: HDC, lpxf: LPXFORM) -> BOOL;
pub extern fn SetWorldTransform(hdc: HDC, lpxf: ?&const XFORM) -> BOOL;
pub extern fn ModifyWorldTransform(hdc: HDC, lpxf: ?&const XFORM, mode: DWORD) -> BOOL;
pub extern fn CombineTransform(lpxfOut: LPXFORM, lpxf1: ?&const XFORM, lpxf2: ?&const XFORM) -> BOOL;
pub extern fn CreateDIBSection(hdc: HDC, pbmi: ?&const BITMAPINFO, usage: UINT, ppvBits: ?&(?&c_void), hSection: HANDLE, offset: DWORD) -> HBITMAP;
pub extern fn GetDIBColorTable(hdc: HDC, iStart: UINT, cEntries: UINT, prgbq: ?&RGBQUAD) -> UINT;
pub extern fn SetDIBColorTable(hdc: HDC, iStart: UINT, cEntries: UINT, prgbq: ?&const RGBQUAD) -> UINT;
pub const struct_tagCOLORADJUSTMENT = extern struct {
caSize: WORD,
caFlags: WORD,
caIlluminantIndex: WORD,
caRedGamma: WORD,
caGreenGamma: WORD,
caBlueGamma: WORD,
caReferenceBlack: WORD,
caReferenceWhite: WORD,
caContrast: SHORT,
caBrightness: SHORT,
caColorfulness: SHORT,
caRedGreenTint: SHORT,
};
pub const COLORADJUSTMENT = struct_tagCOLORADJUSTMENT;
pub const PCOLORADJUSTMENT = ?&struct_tagCOLORADJUSTMENT;
pub const LPCOLORADJUSTMENT = ?&struct_tagCOLORADJUSTMENT;
pub extern fn SetColorAdjustment(hdc: HDC, lpca: ?&const COLORADJUSTMENT) -> BOOL;
pub extern fn GetColorAdjustment(hdc: HDC, lpca: LPCOLORADJUSTMENT) -> BOOL;
pub extern fn CreateHalftonePalette(hdc: HDC) -> HPALETTE;
pub const ABORTPROC = ?extern fn(HDC, c_int) -> BOOL;
pub const struct__DOCINFOA = extern struct {
cbSize: c_int,
lpszDocName: LPCSTR,
lpszOutput: LPCSTR,
lpszDatatype: LPCSTR,
fwType: DWORD,
};
pub const DOCINFOA = struct__DOCINFOA;
pub const LPDOCINFOA = ?&struct__DOCINFOA;
pub const struct__DOCINFOW = extern struct {
cbSize: c_int,
lpszDocName: LPCWSTR,
lpszOutput: LPCWSTR,
lpszDatatype: LPCWSTR,
fwType: DWORD,
};
pub const DOCINFOW = struct__DOCINFOW;
pub const LPDOCINFOW = ?&struct__DOCINFOW;
pub const DOCINFO = DOCINFOA;
pub const LPDOCINFO = LPDOCINFOA;
pub extern fn StartDocA(hdc: HDC, lpdi: ?&const DOCINFOA) -> c_int;
pub extern fn StartDocW(hdc: HDC, lpdi: ?&const DOCINFOW) -> c_int;
pub extern fn EndDoc(hdc: HDC) -> c_int;
pub extern fn StartPage(hdc: HDC) -> c_int;
pub extern fn EndPage(hdc: HDC) -> c_int;
pub extern fn AbortDoc(hdc: HDC) -> c_int;
pub extern fn SetAbortProc(hdc: HDC, proc: ABORTPROC) -> c_int;
pub extern fn AbortPath(hdc: HDC) -> BOOL;
pub extern fn ArcTo(hdc: HDC, left: c_int, top: c_int, right: c_int, bottom: c_int, xr1: c_int, yr1: c_int, xr2: c_int, yr2: c_int) -> BOOL;
pub extern fn BeginPath(hdc: HDC) -> BOOL;
pub extern fn CloseFigure(hdc: HDC) -> BOOL;
pub extern fn EndPath(hdc: HDC) -> BOOL;
pub extern fn FillPath(hdc: HDC) -> BOOL;
pub extern fn FlattenPath(hdc: HDC) -> BOOL;
pub extern fn GetPath(hdc: HDC, apt: LPPOINT, aj: LPBYTE, cpt: c_int) -> c_int;
pub extern fn PathToRegion(hdc: HDC) -> HRGN;
pub extern fn PolyDraw(hdc: HDC, apt: ?&const POINT, aj: ?&const BYTE, cpt: c_int) -> BOOL;
pub extern fn SelectClipPath(hdc: HDC, mode: c_int) -> BOOL;
pub extern fn SetArcDirection(hdc: HDC, dir: c_int) -> c_int;
pub extern fn SetMiterLimit(hdc: HDC, limit: FLOAT, old: PFLOAT) -> BOOL;
pub extern fn StrokeAndFillPath(hdc: HDC) -> BOOL;
pub extern fn StrokePath(hdc: HDC) -> BOOL;
pub extern fn WidenPath(hdc: HDC) -> BOOL;
pub extern fn ExtCreatePen(iPenStyle: DWORD, cWidth: DWORD, plbrush: ?&const LOGBRUSH, cStyle: DWORD, pstyle: ?&const DWORD) -> HPEN;
pub extern fn GetMiterLimit(hdc: HDC, plimit: PFLOAT) -> BOOL;
pub extern fn GetArcDirection(hdc: HDC) -> c_int;
pub extern fn GetObjectA(h: HANDLE, c: c_int, pv: LPVOID) -> c_int;
pub extern fn GetObjectW(h: HANDLE, c: c_int, pv: LPVOID) -> c_int;
pub extern fn MoveToEx(hdc: HDC, x: c_int, y: c_int, lppt: LPPOINT) -> BOOL;
pub extern fn TextOutA(hdc: HDC, x: c_int, y: c_int, lpString: LPCSTR, c: c_int) -> BOOL;
pub extern fn TextOutW(hdc: HDC, x: c_int, y: c_int, lpString: LPCWSTR, c: c_int) -> BOOL;
pub extern fn ExtTextOutA(hdc: HDC, x: c_int, y: c_int, options: UINT, lprect: ?&const RECT, lpString: LPCSTR, c: UINT, lpDx: ?&const INT) -> BOOL;
pub extern fn ExtTextOutW(hdc: HDC, x: c_int, y: c_int, options: UINT, lprect: ?&const RECT, lpString: LPCWSTR, c: UINT, lpDx: ?&const INT) -> BOOL;
pub extern fn PolyTextOutA(hdc: HDC, ppt: ?&const POLYTEXTA, nstrings: c_int) -> BOOL;
pub extern fn PolyTextOutW(hdc: HDC, ppt: ?&const POLYTEXTW, nstrings: c_int) -> BOOL;
pub extern fn CreatePolygonRgn(pptl: ?&const POINT, cPoint: c_int, iMode: c_int) -> HRGN;
pub extern fn DPtoLP(hdc: HDC, lppt: LPPOINT, c: c_int) -> BOOL;
pub extern fn LPtoDP(hdc: HDC, lppt: LPPOINT, c: c_int) -> BOOL;
pub extern fn Polygon(hdc: HDC, apt: ?&const POINT, cpt: c_int) -> BOOL;
pub extern fn Polyline(hdc: HDC, apt: ?&const POINT, cpt: c_int) -> BOOL;
pub extern fn PolyBezier(hdc: HDC, apt: ?&const POINT, cpt: DWORD) -> BOOL;
pub extern fn PolyBezierTo(hdc: HDC, apt: ?&const POINT, cpt: DWORD) -> BOOL;
pub extern fn PolylineTo(hdc: HDC, apt: ?&const POINT, cpt: DWORD) -> BOOL;
pub extern fn SetViewportExtEx(hdc: HDC, x: c_int, y: c_int, lpsz: LPSIZE) -> BOOL;
pub extern fn SetViewportOrgEx(hdc: HDC, x: c_int, y: c_int, lppt: LPPOINT) -> BOOL;
pub extern fn SetWindowExtEx(hdc: HDC, x: c_int, y: c_int, lpsz: LPSIZE) -> BOOL;
pub extern fn SetWindowOrgEx(hdc: HDC, x: c_int, y: c_int, lppt: LPPOINT) -> BOOL;
pub extern fn OffsetViewportOrgEx(hdc: HDC, x: c_int, y: c_int, lppt: LPPOINT) -> BOOL;
pub extern fn OffsetWindowOrgEx(hdc: HDC, x: c_int, y: c_int, lppt: LPPOINT) -> BOOL;
pub extern fn ScaleViewportExtEx(hdc: HDC, xn: c_int, dx: c_int, yn: c_int, yd: c_int, lpsz: LPSIZE) -> BOOL;
pub extern fn ScaleWindowExtEx(hdc: HDC, xn: c_int, xd: c_int, yn: c_int, yd: c_int, lpsz: LPSIZE) -> BOOL;
pub extern fn SetBitmapDimensionEx(hbm: HBITMAP, w: c_int, h: c_int, lpsz: LPSIZE) -> BOOL;
pub extern fn SetBrushOrgEx(hdc: HDC, x: c_int, y: c_int, lppt: LPPOINT) -> BOOL;
pub extern fn GetTextFaceA(hdc: HDC, c: c_int, lpName: LPSTR) -> c_int;
pub extern fn GetTextFaceW(hdc: HDC, c: c_int, lpName: LPWSTR) -> c_int;
pub const struct_tagKERNINGPAIR = extern struct {
wFirst: WORD,
wSecond: WORD,
iKernAmount: c_int,
};
pub const KERNINGPAIR = struct_tagKERNINGPAIR;
pub const LPKERNINGPAIR = ?&struct_tagKERNINGPAIR;
pub extern fn GetKerningPairsA(hdc: HDC, nPairs: DWORD, lpKernPair: LPKERNINGPAIR) -> DWORD;
pub extern fn GetKerningPairsW(hdc: HDC, nPairs: DWORD, lpKernPair: LPKERNINGPAIR) -> DWORD;
pub extern fn GetDCOrgEx(hdc: HDC, lppt: LPPOINT) -> BOOL;
pub extern fn FixBrushOrgEx(hdc: HDC, x: c_int, y: c_int, ptl: LPPOINT) -> BOOL;
pub extern fn UnrealizeObject(h: HGDIOBJ) -> BOOL;
pub extern fn GdiFlush() -> BOOL;
pub extern fn GdiSetBatchLimit(dw: DWORD) -> DWORD;
pub extern fn GdiGetBatchLimit() -> DWORD;
pub const ICMENUMPROCA = ?extern fn(LPSTR, LPARAM) -> c_int;
pub const ICMENUMPROCW = ?extern fn(LPWSTR, LPARAM) -> c_int;
pub extern fn SetICMMode(hdc: HDC, mode: c_int) -> c_int;
pub extern fn CheckColorsInGamut(hdc: HDC, lpRGBTriple: LPRGBTRIPLE, dlpBuffer: LPVOID, nCount: DWORD) -> BOOL;
pub extern fn GetColorSpace(hdc: HDC) -> HCOLORSPACE;
pub extern fn GetLogColorSpaceA(hColorSpace: HCOLORSPACE, lpBuffer: LPLOGCOLORSPACEA, nSize: DWORD) -> BOOL;
pub extern fn GetLogColorSpaceW(hColorSpace: HCOLORSPACE, lpBuffer: LPLOGCOLORSPACEW, nSize: DWORD) -> BOOL;
pub extern fn CreateColorSpaceA(lplcs: LPLOGCOLORSPACEA) -> HCOLORSPACE;
pub extern fn CreateColorSpaceW(lplcs: LPLOGCOLORSPACEW) -> HCOLORSPACE;
pub extern fn SetColorSpace(hdc: HDC, hcs: HCOLORSPACE) -> HCOLORSPACE;
pub extern fn DeleteColorSpace(hcs: HCOLORSPACE) -> BOOL;
pub extern fn GetICMProfileA(hdc: HDC, pBufSize: LPDWORD, pszFilename: LPSTR) -> BOOL;
pub extern fn GetICMProfileW(hdc: HDC, pBufSize: LPDWORD, pszFilename: LPWSTR) -> BOOL;
pub extern fn SetICMProfileA(hdc: HDC, lpFileName: LPSTR) -> BOOL;
pub extern fn SetICMProfileW(hdc: HDC, lpFileName: LPWSTR) -> BOOL;
pub extern fn GetDeviceGammaRamp(hdc: HDC, lpRamp: LPVOID) -> BOOL;
pub extern fn SetDeviceGammaRamp(hdc: HDC, lpRamp: LPVOID) -> BOOL;
pub extern fn ColorMatchToTarget(hdc: HDC, hdcTarget: HDC, action: DWORD) -> BOOL;
pub extern fn EnumICMProfilesA(hdc: HDC, proc: ICMENUMPROCA, param: LPARAM) -> c_int;
pub extern fn EnumICMProfilesW(hdc: HDC, proc: ICMENUMPROCW, param: LPARAM) -> c_int;
pub extern fn UpdateICMRegKeyA(reserved: DWORD, lpszCMID: LPSTR, lpszFileName: LPSTR, command: UINT) -> BOOL;
pub extern fn UpdateICMRegKeyW(reserved: DWORD, lpszCMID: LPWSTR, lpszFileName: LPWSTR, command: UINT) -> BOOL;
pub extern fn ColorCorrectPalette(hdc: HDC, hPal: HPALETTE, deFirst: DWORD, num: DWORD) -> BOOL;
pub const struct_tagEMR = extern struct {
iType: DWORD,
nSize: DWORD,
};
pub const EMR = struct_tagEMR;
pub const PEMR = ?&struct_tagEMR;
pub const struct_tagEMRTEXT = extern struct {
ptlReference: POINTL,
nChars: DWORD,
offString: DWORD,
fOptions: DWORD,
rcl: RECTL,
offDx: DWORD,
};
pub const EMRTEXT = struct_tagEMRTEXT;
pub const PEMRTEXT = ?&struct_tagEMRTEXT;
pub const struct_tagABORTPATH = extern struct {
emr: EMR,
};
pub const EMRABORTPATH = struct_tagABORTPATH;
pub const PEMRABORTPATH = ?&struct_tagABORTPATH;
pub const EMRBEGINPATH = struct_tagABORTPATH;
pub const PEMRBEGINPATH = ?&struct_tagABORTPATH;
pub const EMRENDPATH = struct_tagABORTPATH;
pub const PEMRENDPATH = ?&struct_tagABORTPATH;
pub const EMRCLOSEFIGURE = struct_tagABORTPATH;
pub const PEMRCLOSEFIGURE = ?&struct_tagABORTPATH;
pub const EMRFLATTENPATH = struct_tagABORTPATH;
pub const PEMRFLATTENPATH = ?&struct_tagABORTPATH;
pub const EMRWIDENPATH = struct_tagABORTPATH;
pub const PEMRWIDENPATH = ?&struct_tagABORTPATH;
pub const EMRSETMETARGN = struct_tagABORTPATH;
pub const PEMRSETMETARGN = ?&struct_tagABORTPATH;
pub const EMRSAVEDC = struct_tagABORTPATH;
pub const PEMRSAVEDC = ?&struct_tagABORTPATH;
pub const EMRREALIZEPALETTE = struct_tagABORTPATH;
pub const PEMRREALIZEPALETTE = ?&struct_tagABORTPATH;
pub const struct_tagEMRSELECTCLIPPATH = extern struct {
emr: EMR,
iMode: DWORD,
};
pub const EMRSELECTCLIPPATH = struct_tagEMRSELECTCLIPPATH;
pub const PEMRSELECTCLIPPATH = ?&struct_tagEMRSELECTCLIPPATH;
pub const EMRSETBKMODE = struct_tagEMRSELECTCLIPPATH;
pub const PEMRSETBKMODE = ?&struct_tagEMRSELECTCLIPPATH;
pub const EMRSETMAPMODE = struct_tagEMRSELECTCLIPPATH;
pub const PEMRSETMAPMODE = ?&struct_tagEMRSELECTCLIPPATH;
pub const EMRSETLAYOUT = struct_tagEMRSELECTCLIPPATH;
pub const PEMRSETLAYOUT = ?&struct_tagEMRSELECTCLIPPATH;
pub const EMRSETPOLYFILLMODE = struct_tagEMRSELECTCLIPPATH;
pub const PEMRSETPOLYFILLMODE = ?&struct_tagEMRSELECTCLIPPATH;
pub const EMRSETROP2 = struct_tagEMRSELECTCLIPPATH;
pub const PEMRSETROP2 = ?&struct_tagEMRSELECTCLIPPATH;
pub const EMRSETSTRETCHBLTMODE = struct_tagEMRSELECTCLIPPATH;
pub const PEMRSETSTRETCHBLTMODE = ?&struct_tagEMRSELECTCLIPPATH;
pub const EMRSETICMMODE = struct_tagEMRSELECTCLIPPATH;
pub const PEMRSETICMMODE = ?&struct_tagEMRSELECTCLIPPATH;
pub const EMRSETTEXTALIGN = struct_tagEMRSELECTCLIPPATH;
pub const PEMRSETTEXTALIGN = ?&struct_tagEMRSELECTCLIPPATH;
pub const struct_tagEMRSETMITERLIMIT = extern struct {
emr: EMR,
eMiterLimit: FLOAT,
};
pub const EMRSETMITERLIMIT = struct_tagEMRSETMITERLIMIT;
pub const PEMRSETMITERLIMIT = ?&struct_tagEMRSETMITERLIMIT;
pub const struct_tagEMRRESTOREDC = extern struct {
emr: EMR,
iRelative: LONG,
};
pub const EMRRESTOREDC = struct_tagEMRRESTOREDC;
pub const PEMRRESTOREDC = ?&struct_tagEMRRESTOREDC;
pub const struct_tagEMRSETARCDIRECTION = extern struct {
emr: EMR,
iArcDirection: DWORD,
};
pub const EMRSETARCDIRECTION = struct_tagEMRSETARCDIRECTION;
pub const PEMRSETARCDIRECTION = ?&struct_tagEMRSETARCDIRECTION;
pub const struct_tagEMRSETMAPPERFLAGS = extern struct {
emr: EMR,
dwFlags: DWORD,
};
pub const EMRSETMAPPERFLAGS = struct_tagEMRSETMAPPERFLAGS;
pub const PEMRSETMAPPERFLAGS = ?&struct_tagEMRSETMAPPERFLAGS;
pub const struct_tagEMRSETTEXTCOLOR = extern struct {
emr: EMR,
crColor: COLORREF,
};
pub const EMRSETBKCOLOR = struct_tagEMRSETTEXTCOLOR;
pub const PEMRSETBKCOLOR = ?&struct_tagEMRSETTEXTCOLOR;
pub const EMRSETTEXTCOLOR = struct_tagEMRSETTEXTCOLOR;
pub const PEMRSETTEXTCOLOR = ?&struct_tagEMRSETTEXTCOLOR;
pub const struct_tagEMRSELECTOBJECT = extern struct {
emr: EMR,
ihObject: DWORD,
};
pub const EMRSELECTOBJECT = struct_tagEMRSELECTOBJECT;
pub const PEMRSELECTOBJECT = ?&struct_tagEMRSELECTOBJECT;
pub const EMRDELETEOBJECT = struct_tagEMRSELECTOBJECT;
pub const PEMRDELETEOBJECT = ?&struct_tagEMRSELECTOBJECT;
pub const struct_tagEMRSELECTPALETTE = extern struct {
emr: EMR,
ihPal: DWORD,
};
pub const EMRSELECTPALETTE = struct_tagEMRSELECTPALETTE;
pub const PEMRSELECTPALETTE = ?&struct_tagEMRSELECTPALETTE;
pub const struct_tagEMRRESIZEPALETTE = extern struct {
emr: EMR,
ihPal: DWORD,
cEntries: DWORD,
};
pub const EMRRESIZEPALETTE = struct_tagEMRRESIZEPALETTE;
pub const PEMRRESIZEPALETTE = ?&struct_tagEMRRESIZEPALETTE;
pub const struct_tagEMRSETPALETTEENTRIES = extern struct {
emr: EMR,
ihPal: DWORD,
iStart: DWORD,
cEntries: DWORD,
aPalEntries: [1]PALETTEENTRY,
};
pub const EMRSETPALETTEENTRIES = struct_tagEMRSETPALETTEENTRIES;
pub const PEMRSETPALETTEENTRIES = ?&struct_tagEMRSETPALETTEENTRIES;
pub const struct_tagEMRSETCOLORADJUSTMENT = extern struct {
emr: EMR,
ColorAdjustment: COLORADJUSTMENT,
};
pub const EMRSETCOLORADJUSTMENT = struct_tagEMRSETCOLORADJUSTMENT;
pub const PEMRSETCOLORADJUSTMENT = ?&struct_tagEMRSETCOLORADJUSTMENT;
pub const struct_tagEMRGDICOMMENT = extern struct {
emr: EMR,
cbData: DWORD,
Data: [1]BYTE,
};
pub const EMRGDICOMMENT = struct_tagEMRGDICOMMENT;
pub const PEMRGDICOMMENT = ?&struct_tagEMRGDICOMMENT;
pub const struct_tagEMREOF = extern struct {
emr: EMR,
nPalEntries: DWORD,
offPalEntries: DWORD,
nSizeLast: DWORD,
};
pub const EMREOF = struct_tagEMREOF;
pub const PEMREOF = ?&struct_tagEMREOF;
pub const struct_tagEMRLINETO = extern struct {
emr: EMR,
ptl: POINTL,
};
pub const EMRLINETO = struct_tagEMRLINETO;
pub const PEMRLINETO = ?&struct_tagEMRLINETO;
pub const EMRMOVETOEX = struct_tagEMRLINETO;
pub const PEMRMOVETOEX = ?&struct_tagEMRLINETO;
pub const struct_tagEMROFFSETCLIPRGN = extern struct {
emr: EMR,
ptlOffset: POINTL,
};
pub const EMROFFSETCLIPRGN = struct_tagEMROFFSETCLIPRGN;
pub const PEMROFFSETCLIPRGN = ?&struct_tagEMROFFSETCLIPRGN;
pub const struct_tagEMRFILLPATH = extern struct {
emr: EMR,
rclBounds: RECTL,
};
pub const EMRFILLPATH = struct_tagEMRFILLPATH;
pub const PEMRFILLPATH = ?&struct_tagEMRFILLPATH;
pub const EMRSTROKEANDFILLPATH = struct_tagEMRFILLPATH;
pub const PEMRSTROKEANDFILLPATH = ?&struct_tagEMRFILLPATH;
pub const EMRSTROKEPATH = struct_tagEMRFILLPATH;
pub const PEMRSTROKEPATH = ?&struct_tagEMRFILLPATH;
pub const struct_tagEMREXCLUDECLIPRECT = extern struct {
emr: EMR,
rclClip: RECTL,
};
pub const EMREXCLUDECLIPRECT = struct_tagEMREXCLUDECLIPRECT;
pub const PEMREXCLUDECLIPRECT = ?&struct_tagEMREXCLUDECLIPRECT;
pub const EMRINTERSECTCLIPRECT = struct_tagEMREXCLUDECLIPRECT;
pub const PEMRINTERSECTCLIPRECT = ?&struct_tagEMREXCLUDECLIPRECT;
pub const struct_tagEMRSETVIEWPORTORGEX = extern struct {
emr: EMR,
ptlOrigin: POINTL,
};
pub const EMRSETVIEWPORTORGEX = struct_tagEMRSETVIEWPORTORGEX;
pub const PEMRSETVIEWPORTORGEX = ?&struct_tagEMRSETVIEWPORTORGEX;
pub const EMRSETWINDOWORGEX = struct_tagEMRSETVIEWPORTORGEX;
pub const PEMRSETWINDOWORGEX = ?&struct_tagEMRSETVIEWPORTORGEX;
pub const EMRSETBRUSHORGEX = struct_tagEMRSETVIEWPORTORGEX;
pub const PEMRSETBRUSHORGEX = ?&struct_tagEMRSETVIEWPORTORGEX;
pub const struct_tagEMRSETVIEWPORTEXTEX = extern struct {
emr: EMR,
szlExtent: SIZEL,
};
pub const EMRSETVIEWPORTEXTEX = struct_tagEMRSETVIEWPORTEXTEX;
pub const PEMRSETVIEWPORTEXTEX = ?&struct_tagEMRSETVIEWPORTEXTEX;
pub const EMRSETWINDOWEXTEX = struct_tagEMRSETVIEWPORTEXTEX;
pub const PEMRSETWINDOWEXTEX = ?&struct_tagEMRSETVIEWPORTEXTEX;
pub const struct_tagEMRSCALEVIEWPORTEXTEX = extern struct {
emr: EMR,
xNum: LONG,
xDenom: LONG,
yNum: LONG,
yDenom: LONG,
};
pub const EMRSCALEVIEWPORTEXTEX = struct_tagEMRSCALEVIEWPORTEXTEX;
pub const PEMRSCALEVIEWPORTEXTEX = ?&struct_tagEMRSCALEVIEWPORTEXTEX;
pub const EMRSCALEWINDOWEXTEX = struct_tagEMRSCALEVIEWPORTEXTEX;
pub const PEMRSCALEWINDOWEXTEX = ?&struct_tagEMRSCALEVIEWPORTEXTEX;
pub const struct_tagEMRSETWORLDTRANSFORM = extern struct {
emr: EMR,
xform: XFORM,
};
pub const EMRSETWORLDTRANSFORM = struct_tagEMRSETWORLDTRANSFORM;
pub const PEMRSETWORLDTRANSFORM = ?&struct_tagEMRSETWORLDTRANSFORM;
pub const struct_tagEMRMODIFYWORLDTRANSFORM = extern struct {
emr: EMR,
xform: XFORM,
iMode: DWORD,
};
pub const EMRMODIFYWORLDTRANSFORM = struct_tagEMRMODIFYWORLDTRANSFORM;
pub const PEMRMODIFYWORLDTRANSFORM = ?&struct_tagEMRMODIFYWORLDTRANSFORM;
pub const struct_tagEMRSETPIXELV = extern struct {
emr: EMR,
ptlPixel: POINTL,
crColor: COLORREF,
};
pub const EMRSETPIXELV = struct_tagEMRSETPIXELV;
pub const PEMRSETPIXELV = ?&struct_tagEMRSETPIXELV;
pub const struct_tagEMREXTFLOODFILL = extern struct {
emr: EMR,
ptlStart: POINTL,
crColor: COLORREF,
iMode: DWORD,
};
pub const EMREXTFLOODFILL = struct_tagEMREXTFLOODFILL;
pub const PEMREXTFLOODFILL = ?&struct_tagEMREXTFLOODFILL;
pub const struct_tagEMRELLIPSE = extern struct {
emr: EMR,
rclBox: RECTL,
};
pub const EMRELLIPSE = struct_tagEMRELLIPSE;
pub const PEMRELLIPSE = ?&struct_tagEMRELLIPSE;
pub const EMRRECTANGLE = struct_tagEMRELLIPSE;
pub const PEMRRECTANGLE = ?&struct_tagEMRELLIPSE;
pub const struct_tagEMRROUNDRECT = extern struct {
emr: EMR,
rclBox: RECTL,
szlCorner: SIZEL,
};
pub const EMRROUNDRECT = struct_tagEMRROUNDRECT;
pub const PEMRROUNDRECT = ?&struct_tagEMRROUNDRECT;
pub const struct_tagEMRARC = extern struct {
emr: EMR,
rclBox: RECTL,
ptlStart: POINTL,
ptlEnd: POINTL,
};
pub const EMRARC = struct_tagEMRARC;
pub const PEMRARC = ?&struct_tagEMRARC;
pub const EMRARCTO = struct_tagEMRARC;
pub const PEMRARCTO = ?&struct_tagEMRARC;
pub const EMRCHORD = struct_tagEMRARC;
pub const PEMRCHORD = ?&struct_tagEMRARC;
pub const EMRPIE = struct_tagEMRARC;
pub const PEMRPIE = ?&struct_tagEMRARC;
pub const struct_tagEMRANGLEARC = extern struct {
emr: EMR,
ptlCenter: POINTL,
nRadius: DWORD,
eStartAngle: FLOAT,
eSweepAngle: FLOAT,
};
pub const EMRANGLEARC = struct_tagEMRANGLEARC;
pub const PEMRANGLEARC = ?&struct_tagEMRANGLEARC;
pub const struct_tagEMRPOLYLINE = extern struct {
emr: EMR,
rclBounds: RECTL,
cptl: DWORD,
aptl: [1]POINTL,
};
pub const EMRPOLYLINE = struct_tagEMRPOLYLINE;
pub const PEMRPOLYLINE = ?&struct_tagEMRPOLYLINE;
pub const EMRPOLYBEZIER = struct_tagEMRPOLYLINE;
pub const PEMRPOLYBEZIER = ?&struct_tagEMRPOLYLINE;
pub const EMRPOLYGON = struct_tagEMRPOLYLINE;
pub const PEMRPOLYGON = ?&struct_tagEMRPOLYLINE;
pub const EMRPOLYBEZIERTO = struct_tagEMRPOLYLINE;
pub const PEMRPOLYBEZIERTO = ?&struct_tagEMRPOLYLINE;
pub const EMRPOLYLINETO = struct_tagEMRPOLYLINE;
pub const PEMRPOLYLINETO = ?&struct_tagEMRPOLYLINE;
pub const struct_tagEMRPOLYLINE16 = extern struct {
emr: EMR,
rclBounds: RECTL,
cpts: DWORD,
apts: [1]POINTS,
};
pub const EMRPOLYLINE16 = struct_tagEMRPOLYLINE16;
pub const PEMRPOLYLINE16 = ?&struct_tagEMRPOLYLINE16;
pub const EMRPOLYBEZIER16 = struct_tagEMRPOLYLINE16;
pub const PEMRPOLYBEZIER16 = ?&struct_tagEMRPOLYLINE16;
pub const EMRPOLYGON16 = struct_tagEMRPOLYLINE16;
pub const PEMRPOLYGON16 = ?&struct_tagEMRPOLYLINE16;
pub const EMRPOLYBEZIERTO16 = struct_tagEMRPOLYLINE16;
pub const PEMRPOLYBEZIERTO16 = ?&struct_tagEMRPOLYLINE16;
pub const EMRPOLYLINETO16 = struct_tagEMRPOLYLINE16;
pub const PEMRPOLYLINETO16 = ?&struct_tagEMRPOLYLINE16;
pub const struct_tagEMRPOLYDRAW = extern struct {
emr: EMR,
rclBounds: RECTL,
cptl: DWORD,
aptl: [1]POINTL,
abTypes: [1]BYTE,
};
pub const EMRPOLYDRAW = struct_tagEMRPOLYDRAW;
pub const PEMRPOLYDRAW = ?&struct_tagEMRPOLYDRAW;
pub const struct_tagEMRPOLYDRAW16 = extern struct {
emr: EMR,
rclBounds: RECTL,
cpts: DWORD,
apts: [1]POINTS,
abTypes: [1]BYTE,
};
pub const EMRPOLYDRAW16 = struct_tagEMRPOLYDRAW16;
pub const PEMRPOLYDRAW16 = ?&struct_tagEMRPOLYDRAW16;
pub const struct_tagEMRPOLYPOLYLINE = extern struct {
emr: EMR,
rclBounds: RECTL,
nPolys: DWORD,
cptl: DWORD,
aPolyCounts: [1]DWORD,
aptl: [1]POINTL,
};
pub const EMRPOLYPOLYLINE = struct_tagEMRPOLYPOLYLINE;
pub const PEMRPOLYPOLYLINE = ?&struct_tagEMRPOLYPOLYLINE;
pub const EMRPOLYPOLYGON = struct_tagEMRPOLYPOLYLINE;
pub const PEMRPOLYPOLYGON = ?&struct_tagEMRPOLYPOLYLINE;
pub const struct_tagEMRPOLYPOLYLINE16 = extern struct {
emr: EMR,
rclBounds: RECTL,
nPolys: DWORD,
cpts: DWORD,
aPolyCounts: [1]DWORD,
apts: [1]POINTS,
};
pub const EMRPOLYPOLYLINE16 = struct_tagEMRPOLYPOLYLINE16;
pub const PEMRPOLYPOLYLINE16 = ?&struct_tagEMRPOLYPOLYLINE16;
pub const EMRPOLYPOLYGON16 = struct_tagEMRPOLYPOLYLINE16;
pub const PEMRPOLYPOLYGON16 = ?&struct_tagEMRPOLYPOLYLINE16;
pub const struct_tagEMRINVERTRGN = extern struct {
emr: EMR,
rclBounds: RECTL,
cbRgnData: DWORD,
RgnData: [1]BYTE,
};
pub const EMRINVERTRGN = struct_tagEMRINVERTRGN;
pub const PEMRINVERTRGN = ?&struct_tagEMRINVERTRGN;
pub const EMRPAINTRGN = struct_tagEMRINVERTRGN;
pub const PEMRPAINTRGN = ?&struct_tagEMRINVERTRGN;
pub const struct_tagEMRFILLRGN = extern struct {
emr: EMR,
rclBounds: RECTL,
cbRgnData: DWORD,
ihBrush: DWORD,
RgnData: [1]BYTE,
};
pub const EMRFILLRGN = struct_tagEMRFILLRGN;
pub const PEMRFILLRGN = ?&struct_tagEMRFILLRGN;
pub const struct_tagEMRFRAMERGN = extern struct {
emr: EMR,
rclBounds: RECTL,
cbRgnData: DWORD,
ihBrush: DWORD,
szlStroke: SIZEL,
RgnData: [1]BYTE,
};
pub const EMRFRAMERGN = struct_tagEMRFRAMERGN;
pub const PEMRFRAMERGN = ?&struct_tagEMRFRAMERGN;
pub const struct_tagEMREXTSELECTCLIPRGN = extern struct {
emr: EMR,
cbRgnData: DWORD,
iMode: DWORD,
RgnData: [1]BYTE,
};
pub const EMREXTSELECTCLIPRGN = struct_tagEMREXTSELECTCLIPRGN;
pub const PEMREXTSELECTCLIPRGN = ?&struct_tagEMREXTSELECTCLIPRGN;
pub const struct_tagEMREXTTEXTOUTA = extern struct {
emr: EMR,
rclBounds: RECTL,
iGraphicsMode: DWORD,
exScale: FLOAT,
eyScale: FLOAT,
emrtext: EMRTEXT,
};
pub const EMREXTTEXTOUTA = struct_tagEMREXTTEXTOUTA;
pub const PEMREXTTEXTOUTA = ?&struct_tagEMREXTTEXTOUTA;
pub const EMREXTTEXTOUTW = struct_tagEMREXTTEXTOUTA;
pub const PEMREXTTEXTOUTW = ?&struct_tagEMREXTTEXTOUTA;
pub const struct_tagEMRPOLYTEXTOUTA = extern struct {
emr: EMR,
rclBounds: RECTL,
iGraphicsMode: DWORD,
exScale: FLOAT,
eyScale: FLOAT,
cStrings: LONG,
aemrtext: [1]EMRTEXT,
};
pub const EMRPOLYTEXTOUTA = struct_tagEMRPOLYTEXTOUTA;
pub const PEMRPOLYTEXTOUTA = ?&struct_tagEMRPOLYTEXTOUTA;
pub const EMRPOLYTEXTOUTW = struct_tagEMRPOLYTEXTOUTA;
pub const PEMRPOLYTEXTOUTW = ?&struct_tagEMRPOLYTEXTOUTA;
pub const struct_tagEMRBITBLT = extern struct {
emr: EMR,
rclBounds: RECTL,
xDest: LONG,
yDest: LONG,
cxDest: LONG,
cyDest: LONG,
dwRop: DWORD,
xSrc: LONG,
ySrc: LONG,
xformSrc: XFORM,
crBkColorSrc: COLORREF,
iUsageSrc: DWORD,
offBmiSrc: DWORD,
cbBmiSrc: DWORD,
offBitsSrc: DWORD,
cbBitsSrc: DWORD,
};
pub const EMRBITBLT = struct_tagEMRBITBLT;
pub const PEMRBITBLT = ?&struct_tagEMRBITBLT;
pub const struct_tagEMRSTRETCHBLT = extern struct {
emr: EMR,
rclBounds: RECTL,
xDest: LONG,
yDest: LONG,
cxDest: LONG,
cyDest: LONG,
dwRop: DWORD,
xSrc: LONG,
ySrc: LONG,
xformSrc: XFORM,
crBkColorSrc: COLORREF,
iUsageSrc: DWORD,
offBmiSrc: DWORD,
cbBmiSrc: DWORD,
offBitsSrc: DWORD,
cbBitsSrc: DWORD,
cxSrc: LONG,
cySrc: LONG,
};
pub const EMRSTRETCHBLT = struct_tagEMRSTRETCHBLT;
pub const PEMRSTRETCHBLT = ?&struct_tagEMRSTRETCHBLT;
pub const struct_tagEMRMASKBLT = extern struct {
emr: EMR,
rclBounds: RECTL,
xDest: LONG,
yDest: LONG,
cxDest: LONG,
cyDest: LONG,
dwRop: DWORD,
xSrc: LONG,
ySrc: LONG,
xformSrc: XFORM,
crBkColorSrc: COLORREF,
iUsageSrc: DWORD,
offBmiSrc: DWORD,
cbBmiSrc: DWORD,
offBitsSrc: DWORD,
cbBitsSrc: DWORD,
xMask: LONG,
yMask: LONG,
iUsageMask: DWORD,
offBmiMask: DWORD,
cbBmiMask: DWORD,
offBitsMask: DWORD,
cbBitsMask: DWORD,
};
pub const EMRMASKBLT = struct_tagEMRMASKBLT;
pub const PEMRMASKBLT = ?&struct_tagEMRMASKBLT;
pub const struct_tagEMRPLGBLT = extern struct {
emr: EMR,
rclBounds: RECTL,
aptlDest: [3]POINTL,
xSrc: LONG,
ySrc: LONG,
cxSrc: LONG,
cySrc: LONG,
xformSrc: XFORM,
crBkColorSrc: COLORREF,
iUsageSrc: DWORD,
offBmiSrc: DWORD,
cbBmiSrc: DWORD,
offBitsSrc: DWORD,
cbBitsSrc: DWORD,
xMask: LONG,
yMask: LONG,
iUsageMask: DWORD,
offBmiMask: DWORD,
cbBmiMask: DWORD,
offBitsMask: DWORD,
cbBitsMask: DWORD,
};
pub const EMRPLGBLT = struct_tagEMRPLGBLT;
pub const PEMRPLGBLT = ?&struct_tagEMRPLGBLT;
pub const struct_tagEMRSETDIBITSTODEVICE = extern struct {
emr: EMR,
rclBounds: RECTL,
xDest: LONG,
yDest: LONG,
xSrc: LONG,
ySrc: LONG,
cxSrc: LONG,
cySrc: LONG,
offBmiSrc: DWORD,
cbBmiSrc: DWORD,
offBitsSrc: DWORD,
cbBitsSrc: DWORD,
iUsageSrc: DWORD,
iStartScan: DWORD,
cScans: DWORD,
};
pub const EMRSETDIBITSTODEVICE = struct_tagEMRSETDIBITSTODEVICE;
pub const PEMRSETDIBITSTODEVICE = ?&struct_tagEMRSETDIBITSTODEVICE;
pub const struct_tagEMRSTRETCHDIBITS = extern struct {
emr: EMR,
rclBounds: RECTL,
xDest: LONG,
yDest: LONG,
xSrc: LONG,
ySrc: LONG,
cxSrc: LONG,
cySrc: LONG,
offBmiSrc: DWORD,
cbBmiSrc: DWORD,
offBitsSrc: DWORD,
cbBitsSrc: DWORD,
iUsageSrc: DWORD,
dwRop: DWORD,
cxDest: LONG,
cyDest: LONG,
};
pub const EMRSTRETCHDIBITS = struct_tagEMRSTRETCHDIBITS;
pub const PEMRSTRETCHDIBITS = ?&struct_tagEMRSTRETCHDIBITS;
pub const struct_tagEMREXTCREATEFONTINDIRECTW = extern struct {
emr: EMR,
ihFont: DWORD,
elfw: EXTLOGFONTW,
};
pub const EMREXTCREATEFONTINDIRECTW = struct_tagEMREXTCREATEFONTINDIRECTW;
pub const PEMREXTCREATEFONTINDIRECTW = ?&struct_tagEMREXTCREATEFONTINDIRECTW;
pub const struct_tagEMRCREATEPALETTE = extern struct {
emr: EMR,
ihPal: DWORD,
lgpl: LOGPALETTE,
};
pub const EMRCREATEPALETTE = struct_tagEMRCREATEPALETTE;
pub const PEMRCREATEPALETTE = ?&struct_tagEMRCREATEPALETTE;
pub const struct_tagEMRCREATEPEN = extern struct {
emr: EMR,
ihPen: DWORD,
lopn: LOGPEN,
};
pub const EMRCREATEPEN = struct_tagEMRCREATEPEN;
pub const PEMRCREATEPEN = ?&struct_tagEMRCREATEPEN;
pub const struct_tagEMREXTCREATEPEN = extern struct {
emr: EMR,
ihPen: DWORD,
offBmi: DWORD,
cbBmi: DWORD,
offBits: DWORD,
cbBits: DWORD,
elp: EXTLOGPEN32,
};
pub const EMREXTCREATEPEN = struct_tagEMREXTCREATEPEN;
pub const PEMREXTCREATEPEN = ?&struct_tagEMREXTCREATEPEN;
pub const struct_tagEMRCREATEBRUSHINDIRECT = extern struct {
emr: EMR,
ihBrush: DWORD,
lb: LOGBRUSH32,
};
pub const EMRCREATEBRUSHINDIRECT = struct_tagEMRCREATEBRUSHINDIRECT;
pub const PEMRCREATEBRUSHINDIRECT = ?&struct_tagEMRCREATEBRUSHINDIRECT;
pub const struct_tagEMRCREATEMONOBRUSH = extern struct {
emr: EMR,
ihBrush: DWORD,
iUsage: DWORD,
offBmi: DWORD,
cbBmi: DWORD,
offBits: DWORD,
cbBits: DWORD,
};
pub const EMRCREATEMONOBRUSH = struct_tagEMRCREATEMONOBRUSH;
pub const PEMRCREATEMONOBRUSH = ?&struct_tagEMRCREATEMONOBRUSH;
pub const struct_tagEMRCREATEDIBPATTERNBRUSHPT = extern struct {
emr: EMR,
ihBrush: DWORD,
iUsage: DWORD,
offBmi: DWORD,
cbBmi: DWORD,
offBits: DWORD,
cbBits: DWORD,
};
pub const EMRCREATEDIBPATTERNBRUSHPT = struct_tagEMRCREATEDIBPATTERNBRUSHPT;
pub const PEMRCREATEDIBPATTERNBRUSHPT = ?&struct_tagEMRCREATEDIBPATTERNBRUSHPT;
pub const struct_tagEMRFORMAT = extern struct {
dSignature: DWORD,
nVersion: DWORD,
cbData: DWORD,
offData: DWORD,
};
pub const EMRFORMAT = struct_tagEMRFORMAT;
pub const PEMRFORMAT = ?&struct_tagEMRFORMAT;
pub const struct_tagEMRGLSRECORD = extern struct {
emr: EMR,
cbData: DWORD,
Data: [1]BYTE,
};
pub const EMRGLSRECORD = struct_tagEMRGLSRECORD;
pub const PEMRGLSRECORD = ?&struct_tagEMRGLSRECORD;
pub const struct_tagEMRGLSBOUNDEDRECORD = extern struct {
emr: EMR,
rclBounds: RECTL,
cbData: DWORD,
Data: [1]BYTE,
};
pub const EMRGLSBOUNDEDRECORD = struct_tagEMRGLSBOUNDEDRECORD;
pub const PEMRGLSBOUNDEDRECORD = ?&struct_tagEMRGLSBOUNDEDRECORD;
pub const struct_tagEMRPIXELFORMAT = extern struct {
emr: EMR,
pfd: PIXELFORMATDESCRIPTOR,
};
pub const EMRPIXELFORMAT = struct_tagEMRPIXELFORMAT;
pub const PEMRPIXELFORMAT = ?&struct_tagEMRPIXELFORMAT;
pub const struct_tagEMRCREATECOLORSPACE = extern struct {
emr: EMR,
ihCS: DWORD,
lcs: LOGCOLORSPACEA,
};
pub const EMRCREATECOLORSPACE = struct_tagEMRCREATECOLORSPACE;
pub const PEMRCREATECOLORSPACE = ?&struct_tagEMRCREATECOLORSPACE;
pub const struct_tagEMRSETCOLORSPACE = extern struct {
emr: EMR,
ihCS: DWORD,
};
pub const EMRSETCOLORSPACE = struct_tagEMRSETCOLORSPACE;
pub const PEMRSETCOLORSPACE = ?&struct_tagEMRSETCOLORSPACE;
pub const EMRSELECTCOLORSPACE = struct_tagEMRSETCOLORSPACE;
pub const PEMRSELECTCOLORSPACE = ?&struct_tagEMRSETCOLORSPACE;
pub const EMRDELETECOLORSPACE = struct_tagEMRSETCOLORSPACE;
pub const PEMRDELETECOLORSPACE = ?&struct_tagEMRSETCOLORSPACE;
pub const struct_tagEMREXTESCAPE = extern struct {
emr: EMR,
iEscape: INT,
cbEscData: INT,
EscData: [1]BYTE,
};
pub const EMREXTESCAPE = struct_tagEMREXTESCAPE;
pub const PEMREXTESCAPE = ?&struct_tagEMREXTESCAPE;
pub const EMRDRAWESCAPE = struct_tagEMREXTESCAPE;
pub const PEMRDRAWESCAPE = ?&struct_tagEMREXTESCAPE;
pub const struct_tagEMRNAMEDESCAPE = extern struct {
emr: EMR,
iEscape: INT,
cbDriver: INT,
cbEscData: INT,
EscData: [1]BYTE,
};
pub const EMRNAMEDESCAPE = struct_tagEMRNAMEDESCAPE;
pub const PEMRNAMEDESCAPE = ?&struct_tagEMRNAMEDESCAPE;
pub const struct_tagEMRSETICMPROFILE = extern struct {
emr: EMR,
dwFlags: DWORD,
cbName: DWORD,
cbData: DWORD,
Data: [1]BYTE,
};
pub const EMRSETICMPROFILE = struct_tagEMRSETICMPROFILE;
pub const PEMRSETICMPROFILE = ?&struct_tagEMRSETICMPROFILE;
pub const EMRSETICMPROFILEA = struct_tagEMRSETICMPROFILE;
pub const PEMRSETICMPROFILEA = ?&struct_tagEMRSETICMPROFILE;
pub const EMRSETICMPROFILEW = struct_tagEMRSETICMPROFILE;
pub const PEMRSETICMPROFILEW = ?&struct_tagEMRSETICMPROFILE;
pub const struct_tagEMRCREATECOLORSPACEW = extern struct {
emr: EMR,
ihCS: DWORD,
lcs: LOGCOLORSPACEW,
dwFlags: DWORD,
cbData: DWORD,
Data: [1]BYTE,
};
pub const EMRCREATECOLORSPACEW = struct_tagEMRCREATECOLORSPACEW;
pub const PEMRCREATECOLORSPACEW = ?&struct_tagEMRCREATECOLORSPACEW;
pub const struct_tagCOLORMATCHTOTARGET = extern struct {
emr: EMR,
dwAction: DWORD,
dwFlags: DWORD,
cbName: DWORD,
cbData: DWORD,
Data: [1]BYTE,
};
pub const EMRCOLORMATCHTOTARGET = struct_tagCOLORMATCHTOTARGET;
pub const PEMRCOLORMATCHTOTARGET = ?&struct_tagCOLORMATCHTOTARGET;
pub const struct_tagCOLORCORRECTPALETTE = extern struct {
emr: EMR,
ihPalette: DWORD,
nFirstEntry: DWORD,
nPalEntries: DWORD,
nReserved: DWORD,
};
pub const EMRCOLORCORRECTPALETTE = struct_tagCOLORCORRECTPALETTE;
pub const PEMRCOLORCORRECTPALETTE = ?&struct_tagCOLORCORRECTPALETTE;
pub const struct_tagEMRALPHABLEND = extern struct {
emr: EMR,
rclBounds: RECTL,
xDest: LONG,
yDest: LONG,
cxDest: LONG,
cyDest: LONG,
dwRop: DWORD,
xSrc: LONG,
ySrc: LONG,
xformSrc: XFORM,
crBkColorSrc: COLORREF,
iUsageSrc: DWORD,
offBmiSrc: DWORD,
cbBmiSrc: DWORD,
offBitsSrc: DWORD,
cbBitsSrc: DWORD,
cxSrc: LONG,
cySrc: LONG,
};
pub const EMRALPHABLEND = struct_tagEMRALPHABLEND;
pub const PEMRALPHABLEND = ?&struct_tagEMRALPHABLEND;
pub const struct_tagEMRGRADIENTFILL = extern struct {
emr: EMR,
rclBounds: RECTL,
nVer: DWORD,
nTri: DWORD,
ulMode: ULONG,
Ver: [1]TRIVERTEX,
};
pub const EMRGRADIENTFILL = struct_tagEMRGRADIENTFILL;
pub const PEMRGRADIENTFILL = ?&struct_tagEMRGRADIENTFILL;
pub const struct_tagEMRTRANSPARENTBLT = extern struct {
emr: EMR,
rclBounds: RECTL,
xDest: LONG,
yDest: LONG,
cxDest: LONG,
cyDest: LONG,
dwRop: DWORD,
xSrc: LONG,
ySrc: LONG,
xformSrc: XFORM,
crBkColorSrc: COLORREF,
iUsageSrc: DWORD,
offBmiSrc: DWORD,
cbBmiSrc: DWORD,
offBitsSrc: DWORD,
cbBitsSrc: DWORD,
cxSrc: LONG,
cySrc: LONG,
};
pub const EMRTRANSPARENTBLT = struct_tagEMRTRANSPARENTBLT;
pub const PEMRTRANSPARENTBLT = ?&struct_tagEMRTRANSPARENTBLT;
pub extern fn wglCopyContext(arg0: HGLRC, arg1: HGLRC, arg2: UINT) -> BOOL;
pub extern fn wglCreateContext(arg0: HDC) -> HGLRC;
pub extern fn wglCreateLayerContext(arg0: HDC, arg1: c_int) -> HGLRC;
pub extern fn wglDeleteContext(arg0: HGLRC) -> BOOL;
pub extern fn wglGetCurrentContext() -> HGLRC;
pub extern fn wglGetCurrentDC() -> HDC;
pub extern fn wglMakeCurrent(arg0: HDC, arg1: HGLRC) -> BOOL;
pub extern fn wglShareLists(arg0: HGLRC, arg1: HGLRC) -> BOOL;
pub extern fn wglUseFontBitmapsA(arg0: HDC, arg1: DWORD, arg2: DWORD, arg3: DWORD) -> BOOL;
pub extern fn wglUseFontBitmapsW(arg0: HDC, arg1: DWORD, arg2: DWORD, arg3: DWORD) -> BOOL;
pub extern fn SwapBuffers(arg0: HDC) -> BOOL;
pub const struct__POINTFLOAT = extern struct {
x: FLOAT,
y: FLOAT,
};
pub const POINTFLOAT = struct__POINTFLOAT;
pub const PPOINTFLOAT = ?&struct__POINTFLOAT;
pub const struct__GLYPHMETRICSFLOAT = extern struct {
gmfBlackBoxX: FLOAT,
gmfBlackBoxY: FLOAT,
gmfptGlyphOrigin: POINTFLOAT,
gmfCellIncX: FLOAT,
gmfCellIncY: FLOAT,
};
pub const GLYPHMETRICSFLOAT = struct__GLYPHMETRICSFLOAT;
pub const PGLYPHMETRICSFLOAT = ?&struct__GLYPHMETRICSFLOAT;
pub const LPGLYPHMETRICSFLOAT = ?&struct__GLYPHMETRICSFLOAT;
pub extern fn wglUseFontOutlinesA(arg0: HDC, arg1: DWORD, arg2: DWORD, arg3: DWORD, arg4: FLOAT, arg5: FLOAT, arg6: c_int, arg7: LPGLYPHMETRICSFLOAT) -> BOOL;
pub extern fn wglUseFontOutlinesW(arg0: HDC, arg1: DWORD, arg2: DWORD, arg3: DWORD, arg4: FLOAT, arg5: FLOAT, arg6: c_int, arg7: LPGLYPHMETRICSFLOAT) -> BOOL;
pub const struct_tagLAYERPLANEDESCRIPTOR = extern struct {
nSize: WORD,
nVersion: WORD,
dwFlags: DWORD,
iPixelType: BYTE,
cColorBits: BYTE,
cRedBits: BYTE,
cRedShift: BYTE,
cGreenBits: BYTE,
cGreenShift: BYTE,
cBlueBits: BYTE,
cBlueShift: BYTE,
cAlphaBits: BYTE,
cAlphaShift: BYTE,
cAccumBits: BYTE,
cAccumRedBits: BYTE,
cAccumGreenBits: BYTE,
cAccumBlueBits: BYTE,
cAccumAlphaBits: BYTE,
cDepthBits: BYTE,
cStencilBits: BYTE,
cAuxBuffers: BYTE,
iLayerPlane: BYTE,
bReserved: BYTE,
crTransparent: COLORREF,
};
pub const LAYERPLANEDESCRIPTOR = struct_tagLAYERPLANEDESCRIPTOR;
pub const PLAYERPLANEDESCRIPTOR = ?&struct_tagLAYERPLANEDESCRIPTOR;
pub const LPLAYERPLANEDESCRIPTOR = ?&struct_tagLAYERPLANEDESCRIPTOR;
pub extern fn wglDescribeLayerPlane(arg0: HDC, arg1: c_int, arg2: c_int, arg3: UINT, arg4: LPLAYERPLANEDESCRIPTOR) -> BOOL;
pub extern fn wglSetLayerPaletteEntries(arg0: HDC, arg1: c_int, arg2: c_int, arg3: c_int, arg4: ?&const COLORREF) -> c_int;
pub extern fn wglGetLayerPaletteEntries(arg0: HDC, arg1: c_int, arg2: c_int, arg3: c_int, arg4: ?&COLORREF) -> c_int;
pub extern fn wglRealizeLayerPalette(arg0: HDC, arg1: c_int, arg2: BOOL) -> BOOL;
pub extern fn wglSwapLayerBuffers(arg0: HDC, arg1: UINT) -> BOOL;
pub const struct__WGLSWAP = extern struct {
hdc: HDC,
uiFlags: UINT,
};
pub const WGLSWAP = struct__WGLSWAP;
pub const PWGLSWAP = ?&struct__WGLSWAP;
pub const LPWGLSWAP = ?&struct__WGLSWAP;
pub extern fn wglSwapMultipleBuffers(arg0: UINT, arg1: ?&const WGLSWAP) -> DWORD;
pub const HDWP = HANDLE;
pub const MENUTEMPLATEA = c_void;
pub const MENUTEMPLATEW = c_void;
pub const MENUTEMPLATE = MENUTEMPLATEA;
pub const LPMENUTEMPLATEA = PVOID;
pub const LPMENUTEMPLATEW = PVOID;
pub const LPMENUTEMPLATE = LPMENUTEMPLATEA;
pub const WNDPROC = ?extern fn(HWND, UINT, WPARAM, LPARAM) -> LRESULT;
pub const DLGPROC = ?extern fn(HWND, UINT, WPARAM, LPARAM) -> INT_PTR;
pub const TIMERPROC = ?extern fn(HWND, UINT, UINT_PTR, DWORD);
pub const GRAYSTRINGPROC = ?extern fn(HDC, LPARAM, c_int) -> BOOL;
pub const WNDENUMPROC = ?extern fn(HWND, LPARAM) -> BOOL;
pub const HOOKPROC = ?extern fn(c_int, WPARAM, LPARAM) -> LRESULT;
pub const SENDASYNCPROC = ?extern fn(HWND, UINT, ULONG_PTR, LRESULT);
pub const PROPENUMPROCA = ?extern fn(HWND, LPCSTR, HANDLE) -> BOOL;
pub const PROPENUMPROCW = ?extern fn(HWND, LPCWSTR, HANDLE) -> BOOL;
pub const PROPENUMPROCEXA = ?extern fn(HWND, LPSTR, HANDLE, ULONG_PTR) -> BOOL;
pub const PROPENUMPROCEXW = ?extern fn(HWND, LPWSTR, HANDLE, ULONG_PTR) -> BOOL;
pub const EDITWORDBREAKPROCA = ?extern fn(LPSTR, c_int, c_int, c_int) -> c_int;
pub const EDITWORDBREAKPROCW = ?extern fn(LPWSTR, c_int, c_int, c_int) -> c_int;
pub const DRAWSTATEPROC = ?extern fn(HDC, LPARAM, WPARAM, c_int, c_int) -> BOOL;
pub const PROPENUMPROC = PROPENUMPROCA;
pub const PROPENUMPROCEX = PROPENUMPROCEXA;
pub const EDITWORDBREAKPROC = EDITWORDBREAKPROCA;
pub const NAMEENUMPROCA = ?extern fn(LPSTR, LPARAM) -> BOOL;
pub const NAMEENUMPROCW = ?extern fn(LPWSTR, LPARAM) -> BOOL;
pub const WINSTAENUMPROCA = NAMEENUMPROCA;
pub const DESKTOPENUMPROCA = NAMEENUMPROCA;
pub const WINSTAENUMPROCW = NAMEENUMPROCW;
pub const DESKTOPENUMPROCW = NAMEENUMPROCW;
pub const WINSTAENUMPROC = WINSTAENUMPROCA;
pub const DESKTOPENUMPROC = DESKTOPENUMPROCA;
pub extern fn wvsprintfA(arg0: LPSTR, arg1: LPCSTR, arglist: va_list) -> c_int;
pub extern fn wvsprintfW(arg0: LPWSTR, arg1: LPCWSTR, arglist: va_list) -> c_int;
pub extern fn wsprintfA(arg0: LPSTR, arg1: LPCSTR) -> c_int;
pub extern fn wsprintfW(arg0: LPWSTR, arg1: LPCWSTR) -> c_int;
pub const struct_tagCREATESTRUCTA = extern struct {
lpCreateParams: LPVOID,
hInstance: HINSTANCE,
hMenu: HMENU,
hwndParent: HWND,
cy: c_int,
cx: c_int,
y: c_int,
x: c_int,
style: LONG,
lpszName: LPCSTR,
lpszClass: LPCSTR,
dwExStyle: DWORD,
};
pub const struct_tagCBT_CREATEWNDA = extern struct {
lpcs: ?&struct_tagCREATESTRUCTA,
hwndInsertAfter: HWND,
};
pub const CBT_CREATEWNDA = struct_tagCBT_CREATEWNDA;
pub const LPCBT_CREATEWNDA = ?&struct_tagCBT_CREATEWNDA;
pub const struct_tagCREATESTRUCTW = extern struct {
lpCreateParams: LPVOID,
hInstance: HINSTANCE,
hMenu: HMENU,
hwndParent: HWND,
cy: c_int,
cx: c_int,
y: c_int,
x: c_int,
style: LONG,
lpszName: LPCWSTR,
lpszClass: LPCWSTR,
dwExStyle: DWORD,
};
pub const struct_tagCBT_CREATEWNDW = extern struct {
lpcs: ?&struct_tagCREATESTRUCTW,
hwndInsertAfter: HWND,
};
pub const CBT_CREATEWNDW = struct_tagCBT_CREATEWNDW;
pub const LPCBT_CREATEWNDW = ?&struct_tagCBT_CREATEWNDW;
pub const CBT_CREATEWND = CBT_CREATEWNDA;
pub const LPCBT_CREATEWND = LPCBT_CREATEWNDA;
pub const struct_tagCBTACTIVATESTRUCT = extern struct {
fMouse: BOOL,
hWndActive: HWND,
};
pub const CBTACTIVATESTRUCT = struct_tagCBTACTIVATESTRUCT;
pub const LPCBTACTIVATESTRUCT = ?&struct_tagCBTACTIVATESTRUCT;
pub const struct_tagWTSSESSION_NOTIFICATION = extern struct {
cbSize: DWORD,
dwSessionId: DWORD,
};
pub const WTSSESSION_NOTIFICATION = struct_tagWTSSESSION_NOTIFICATION;
pub const PWTSSESSION_NOTIFICATION = ?&struct_tagWTSSESSION_NOTIFICATION;
pub const SHELLHOOKINFO = extern struct {
hwnd: HWND,
rc: RECT,
};
pub const LPSHELLHOOKINFO = ?&extern struct {
hwnd: HWND,
rc: RECT,
};
pub const struct_tagEVENTMSG = extern struct {
message: UINT,
paramL: UINT,
paramH: UINT,
time: DWORD,
hwnd: HWND,
};
pub const EVENTMSG = struct_tagEVENTMSG;
pub const PEVENTMSGMSG = ?&struct_tagEVENTMSG;
pub const NPEVENTMSGMSG = ?&struct_tagEVENTMSG;
pub const LPEVENTMSGMSG = ?&struct_tagEVENTMSG;
pub const PEVENTMSG = ?&struct_tagEVENTMSG;
pub const NPEVENTMSG = ?&struct_tagEVENTMSG;
pub const LPEVENTMSG = ?&struct_tagEVENTMSG;
pub const struct_tagCWPSTRUCT = extern struct {
lParam: LPARAM,
wParam: WPARAM,
message: UINT,
hwnd: HWND,
};
pub const CWPSTRUCT = struct_tagCWPSTRUCT;
pub const PCWPSTRUCT = ?&struct_tagCWPSTRUCT;
pub const NPCWPSTRUCT = ?&struct_tagCWPSTRUCT;
pub const LPCWPSTRUCT = ?&struct_tagCWPSTRUCT;
pub const struct_tagCWPRETSTRUCT = extern struct {
lResult: LRESULT,
lParam: LPARAM,
wParam: WPARAM,
message: UINT,
hwnd: HWND,
};
pub const CWPRETSTRUCT = struct_tagCWPRETSTRUCT;
pub const PCWPRETSTRUCT = ?&struct_tagCWPRETSTRUCT;
pub const NPCWPRETSTRUCT = ?&struct_tagCWPRETSTRUCT;
pub const LPCWPRETSTRUCT = ?&struct_tagCWPRETSTRUCT;
pub const struct_tagKBDLLHOOKSTRUCT = extern struct {
vkCode: DWORD,
scanCode: DWORD,
flags: DWORD,
time: DWORD,
dwExtraInfo: ULONG_PTR,
};
pub const KBDLLHOOKSTRUCT = struct_tagKBDLLHOOKSTRUCT;
pub const LPKBDLLHOOKSTRUCT = ?&struct_tagKBDLLHOOKSTRUCT;
pub const PKBDLLHOOKSTRUCT = ?&struct_tagKBDLLHOOKSTRUCT;
pub const struct_tagMSLLHOOKSTRUCT = extern struct {
pt: POINT,
mouseData: DWORD,
flags: DWORD,
time: DWORD,
dwExtraInfo: ULONG_PTR,
};
pub const MSLLHOOKSTRUCT = struct_tagMSLLHOOKSTRUCT;
pub const LPMSLLHOOKSTRUCT = ?&struct_tagMSLLHOOKSTRUCT;
pub const PMSLLHOOKSTRUCT = ?&struct_tagMSLLHOOKSTRUCT;
pub const struct_tagDEBUGHOOKINFO = extern struct {
idThread: DWORD,
idThreadInstaller: DWORD,
lParam: LPARAM,
wParam: WPARAM,
code: c_int,
};
pub const DEBUGHOOKINFO = struct_tagDEBUGHOOKINFO;
pub const PDEBUGHOOKINFO = ?&struct_tagDEBUGHOOKINFO;
pub const NPDEBUGHOOKINFO = ?&struct_tagDEBUGHOOKINFO;
pub const LPDEBUGHOOKINFO = ?&struct_tagDEBUGHOOKINFO;
pub const struct_tagMOUSEHOOKSTRUCT = extern struct {
pt: POINT,
hwnd: HWND,
wHitTestCode: UINT,
dwExtraInfo: ULONG_PTR,
};
pub const MOUSEHOOKSTRUCT = struct_tagMOUSEHOOKSTRUCT;
pub const LPMOUSEHOOKSTRUCT = ?&struct_tagMOUSEHOOKSTRUCT;
pub const PMOUSEHOOKSTRUCT = ?&struct_tagMOUSEHOOKSTRUCT;
pub const struct_tagMOUSEHOOKSTRUCTEX = extern struct {
@"": struct_tagMOUSEHOOKSTRUCT,
mouseData: DWORD,
};
pub const MOUSEHOOKSTRUCTEX = struct_tagMOUSEHOOKSTRUCTEX;
pub const LPMOUSEHOOKSTRUCTEX = ?&struct_tagMOUSEHOOKSTRUCTEX;
pub const PMOUSEHOOKSTRUCTEX = ?&struct_tagMOUSEHOOKSTRUCTEX;
pub const struct_tagHARDWAREHOOKSTRUCT = extern struct {
hwnd: HWND,
message: UINT,
wParam: WPARAM,
lParam: LPARAM,
};
pub const HARDWAREHOOKSTRUCT = struct_tagHARDWAREHOOKSTRUCT;
pub const LPHARDWAREHOOKSTRUCT = ?&struct_tagHARDWAREHOOKSTRUCT;
pub const PHARDWAREHOOKSTRUCT = ?&struct_tagHARDWAREHOOKSTRUCT;
pub extern fn LoadKeyboardLayoutA(pwszKLID: LPCSTR, Flags: UINT) -> HKL;
pub extern fn LoadKeyboardLayoutW(pwszKLID: LPCWSTR, Flags: UINT) -> HKL;
pub extern fn ActivateKeyboardLayout(hkl: HKL, Flags: UINT) -> HKL;
pub extern fn ToUnicodeEx(wVirtKey: UINT, wScanCode: UINT, lpKeyState: ?&const BYTE, pwszBuff: LPWSTR, cchBuff: c_int, wFlags: UINT, dwhkl: HKL) -> c_int;
pub extern fn UnloadKeyboardLayout(hkl: HKL) -> BOOL;
pub extern fn GetKeyboardLayoutNameA(pwszKLID: LPSTR) -> BOOL;
pub extern fn GetKeyboardLayoutNameW(pwszKLID: LPWSTR) -> BOOL;
pub extern fn GetKeyboardLayoutList(nBuff: c_int, lpList: ?&HKL) -> c_int;
pub extern fn GetKeyboardLayout(idThread: DWORD) -> HKL;
pub const struct_tagMOUSEMOVEPOINT = extern struct {
x: c_int,
y: c_int,
time: DWORD,
dwExtraInfo: ULONG_PTR,
};
pub const MOUSEMOVEPOINT = struct_tagMOUSEMOVEPOINT;
pub const PMOUSEMOVEPOINT = ?&struct_tagMOUSEMOVEPOINT;
pub const LPMOUSEMOVEPOINT = ?&struct_tagMOUSEMOVEPOINT;
pub extern fn GetMouseMovePointsEx(cbSize: UINT, lppt: LPMOUSEMOVEPOINT, lpptBuf: LPMOUSEMOVEPOINT, nBufPoints: c_int, resolution: DWORD) -> c_int;
pub extern fn CreateDesktopA(lpszDesktop: LPCSTR, lpszDevice: LPCSTR, pDevmode: ?&DEVMODEA, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES) -> HDESK;
pub extern fn CreateDesktopW(lpszDesktop: LPCWSTR, lpszDevice: LPCWSTR, pDevmode: ?&DEVMODEW, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES) -> HDESK;
pub extern fn CreateDesktopExA(lpszDesktop: LPCSTR, lpszDevice: LPCSTR, pDevmode: ?&DEVMODEA, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES, ulHeapSize: ULONG, pvoid: PVOID) -> HDESK;
pub extern fn CreateDesktopExW(lpszDesktop: LPCWSTR, lpszDevice: LPCWSTR, pDevmode: ?&DEVMODEW, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES, ulHeapSize: ULONG, pvoid: PVOID) -> HDESK;
pub extern fn OpenDesktopA(lpszDesktop: LPCSTR, dwFlags: DWORD, fInherit: BOOL, dwDesiredAccess: ACCESS_MASK) -> HDESK;
pub extern fn OpenDesktopW(lpszDesktop: LPCWSTR, dwFlags: DWORD, fInherit: BOOL, dwDesiredAccess: ACCESS_MASK) -> HDESK;
pub extern fn OpenInputDesktop(dwFlags: DWORD, fInherit: BOOL, dwDesiredAccess: ACCESS_MASK) -> HDESK;
pub extern fn EnumDesktopsA(hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCA, lParam: LPARAM) -> BOOL;
pub extern fn EnumDesktopsW(hwinsta: HWINSTA, lpEnumFunc: DESKTOPENUMPROCW, lParam: LPARAM) -> BOOL;
pub extern fn EnumDesktopWindows(hDesktop: HDESK, lpfn: WNDENUMPROC, lParam: LPARAM) -> BOOL;
pub extern fn SwitchDesktop(hDesktop: HDESK) -> BOOL;
pub extern fn SetThreadDesktop(hDesktop: HDESK) -> BOOL;
pub extern fn CloseDesktop(hDesktop: HDESK) -> BOOL;
pub extern fn GetThreadDesktop(dwThreadId: DWORD) -> HDESK;
pub extern fn CreateWindowStationA(lpwinsta: LPCSTR, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES) -> HWINSTA;
pub extern fn CreateWindowStationW(lpwinsta: LPCWSTR, dwFlags: DWORD, dwDesiredAccess: ACCESS_MASK, lpsa: LPSECURITY_ATTRIBUTES) -> HWINSTA;
pub extern fn OpenWindowStationA(lpszWinSta: LPCSTR, fInherit: BOOL, dwDesiredAccess: ACCESS_MASK) -> HWINSTA;
pub extern fn OpenWindowStationW(lpszWinSta: LPCWSTR, fInherit: BOOL, dwDesiredAccess: ACCESS_MASK) -> HWINSTA;
pub extern fn EnumWindowStationsA(lpEnumFunc: WINSTAENUMPROCA, lParam: LPARAM) -> BOOL;
pub extern fn EnumWindowStationsW(lpEnumFunc: WINSTAENUMPROCW, lParam: LPARAM) -> BOOL;
pub extern fn CloseWindowStation(hWinSta: HWINSTA) -> BOOL;
pub extern fn SetProcessWindowStation(hWinSta: HWINSTA) -> BOOL;
pub extern fn GetProcessWindowStation() -> HWINSTA;
pub extern fn SetUserObjectSecurity(hObj: HANDLE, pSIRequested: PSECURITY_INFORMATION, pSID: PSECURITY_DESCRIPTOR) -> BOOL;
pub extern fn GetUserObjectSecurity(hObj: HANDLE, pSIRequested: PSECURITY_INFORMATION, pSID: PSECURITY_DESCRIPTOR, nLength: DWORD, lpnLengthNeeded: LPDWORD) -> BOOL;
pub const struct_tagUSEROBJECTFLAGS = extern struct {
fInherit: BOOL,
fReserved: BOOL,
dwFlags: DWORD,
};
pub const USEROBJECTFLAGS = struct_tagUSEROBJECTFLAGS;
pub const PUSEROBJECTFLAGS = ?&struct_tagUSEROBJECTFLAGS;
pub extern fn GetUserObjectInformationA(hObj: HANDLE, nIndex: c_int, pvInfo: PVOID, nLength: DWORD, lpnLengthNeeded: LPDWORD) -> BOOL;
pub extern fn GetUserObjectInformationW(hObj: HANDLE, nIndex: c_int, pvInfo: PVOID, nLength: DWORD, lpnLengthNeeded: LPDWORD) -> BOOL;
pub extern fn SetUserObjectInformationA(hObj: HANDLE, nIndex: c_int, pvInfo: PVOID, nLength: DWORD) -> BOOL;
pub extern fn SetUserObjectInformationW(hObj: HANDLE, nIndex: c_int, pvInfo: PVOID, nLength: DWORD) -> BOOL;
pub const struct_tagWNDCLASSEXA = extern struct {
cbSize: UINT,
style: UINT,
lpfnWndProc: WNDPROC,
cbClsExtra: c_int,
cbWndExtra: c_int,
hInstance: HINSTANCE,
hIcon: HICON,
hCursor: HCURSOR,
hbrBackground: HBRUSH,
lpszMenuName: LPCSTR,
lpszClassName: LPCSTR,
hIconSm: HICON,
};
pub const WNDCLASSEXA = struct_tagWNDCLASSEXA;
pub const PWNDCLASSEXA = ?&struct_tagWNDCLASSEXA;
pub const NPWNDCLASSEXA = ?&struct_tagWNDCLASSEXA;
pub const LPWNDCLASSEXA = ?&struct_tagWNDCLASSEXA;
pub const struct_tagWNDCLASSEXW = extern struct {
cbSize: UINT,
style: UINT,
lpfnWndProc: WNDPROC,
cbClsExtra: c_int,
cbWndExtra: c_int,
hInstance: HINSTANCE,
hIcon: HICON,
hCursor: HCURSOR,
hbrBackground: HBRUSH,
lpszMenuName: LPCWSTR,
lpszClassName: LPCWSTR,
hIconSm: HICON,
};
pub const WNDCLASSEXW = struct_tagWNDCLASSEXW;
pub const PWNDCLASSEXW = ?&struct_tagWNDCLASSEXW;
pub const NPWNDCLASSEXW = ?&struct_tagWNDCLASSEXW;
pub const LPWNDCLASSEXW = ?&struct_tagWNDCLASSEXW;
pub const WNDCLASSEX = WNDCLASSEXA;
pub const PWNDCLASSEX = PWNDCLASSEXA;
pub const NPWNDCLASSEX = NPWNDCLASSEXA;
pub const LPWNDCLASSEX = LPWNDCLASSEXA;
pub const struct_tagWNDCLASSA = extern struct {
style: UINT,
lpfnWndProc: WNDPROC,
cbClsExtra: c_int,
cbWndExtra: c_int,
hInstance: HINSTANCE,
hIcon: HICON,
hCursor: HCURSOR,
hbrBackground: HBRUSH,
lpszMenuName: LPCSTR,
lpszClassName: LPCSTR,
};
pub const WNDCLASSA = struct_tagWNDCLASSA;
pub const PWNDCLASSA = ?&struct_tagWNDCLASSA;
pub const NPWNDCLASSA = ?&struct_tagWNDCLASSA;
pub const LPWNDCLASSA = ?&struct_tagWNDCLASSA;
pub const struct_tagWNDCLASSW = extern struct {
style: UINT,
lpfnWndProc: WNDPROC,
cbClsExtra: c_int,
cbWndExtra: c_int,
hInstance: HINSTANCE,
hIcon: HICON,
hCursor: HCURSOR,
hbrBackground: HBRUSH,
lpszMenuName: LPCWSTR,
lpszClassName: LPCWSTR,
};
pub const WNDCLASSW = struct_tagWNDCLASSW;
pub const PWNDCLASSW = ?&struct_tagWNDCLASSW;
pub const NPWNDCLASSW = ?&struct_tagWNDCLASSW;
pub const LPWNDCLASSW = ?&struct_tagWNDCLASSW;
pub const WNDCLASS = WNDCLASSA;
pub const PWNDCLASS = PWNDCLASSA;
pub const NPWNDCLASS = NPWNDCLASSA;
pub const LPWNDCLASS = LPWNDCLASSA;
pub extern fn IsHungAppWindow(hwnd: HWND) -> BOOL;
pub extern fn DisableProcessWindowsGhosting();
pub const struct_tagMSG = extern struct {
hwnd: HWND,
message: UINT,
wParam: WPARAM,
lParam: LPARAM,
time: DWORD,
pt: POINT,
};
pub const MSG = struct_tagMSG;
pub const PMSG = ?&struct_tagMSG;
pub const NPMSG = ?&struct_tagMSG;
pub const LPMSG = ?&struct_tagMSG;
pub const struct_tagMINMAXINFO = extern struct {
ptReserved: POINT,
ptMaxSize: POINT,
ptMaxPosition: POINT,
ptMinTrackSize: POINT,
ptMaxTrackSize: POINT,
};
pub const MINMAXINFO = struct_tagMINMAXINFO;
pub const PMINMAXINFO = ?&struct_tagMINMAXINFO;
pub const LPMINMAXINFO = ?&struct_tagMINMAXINFO;
pub const struct_tagCOPYDATASTRUCT = extern struct {
dwData: ULONG_PTR,
cbData: DWORD,
lpData: PVOID,
};
pub const COPYDATASTRUCT = struct_tagCOPYDATASTRUCT;
pub const PCOPYDATASTRUCT = ?&struct_tagCOPYDATASTRUCT;
pub const struct_tagMDINEXTMENU = extern struct {
hmenuIn: HMENU,
hmenuNext: HMENU,
hwndNext: HWND,
};
pub const MDINEXTMENU = struct_tagMDINEXTMENU;
pub const PMDINEXTMENU = ?&struct_tagMDINEXTMENU;
pub const LPMDINEXTMENU = ?&struct_tagMDINEXTMENU;
pub const POWERBROADCAST_SETTING = extern struct {
PowerSetting: GUID,
DataLength: DWORD,
Data: [1]UCHAR,
};
pub const PPOWERBROADCAST_SETTING = ?&extern struct {
PowerSetting: GUID,
DataLength: DWORD,
Data: [1]UCHAR,
};
pub extern fn RegisterWindowMessageA(lpString: LPCSTR) -> UINT;
pub extern fn RegisterWindowMessageW(lpString: LPCWSTR) -> UINT;
pub const struct_tagWINDOWPOS = extern struct {
hwnd: HWND,
hwndInsertAfter: HWND,
x: c_int,
y: c_int,
cx: c_int,
cy: c_int,
flags: UINT,
};
pub const WINDOWPOS = struct_tagWINDOWPOS;
pub const LPWINDOWPOS = ?&struct_tagWINDOWPOS;
pub const PWINDOWPOS = ?&struct_tagWINDOWPOS;
pub const struct_tagNCCALCSIZE_PARAMS = extern struct {
rgrc: [3]RECT,
lppos: PWINDOWPOS,
};
pub const NCCALCSIZE_PARAMS = struct_tagNCCALCSIZE_PARAMS;
pub const LPNCCALCSIZE_PARAMS = ?&struct_tagNCCALCSIZE_PARAMS;
pub const struct_tagTRACKMOUSEEVENT = extern struct {
cbSize: DWORD,
dwFlags: DWORD,
hwndTrack: HWND,
dwHoverTime: DWORD,
};
pub const TRACKMOUSEEVENT = struct_tagTRACKMOUSEEVENT;
pub const LPTRACKMOUSEEVENT = ?&struct_tagTRACKMOUSEEVENT;
pub extern fn TrackMouseEvent(lpEventTrack: LPTRACKMOUSEEVENT) -> BOOL;
pub extern fn DrawEdge(hdc: HDC, qrc: LPRECT, edge: UINT, grfFlags: UINT) -> BOOL;
pub extern fn DrawFrameControl(arg0: HDC, arg1: LPRECT, arg2: UINT, arg3: UINT) -> BOOL;
pub extern fn DrawCaption(hwnd: HWND, hdc: HDC, lprect: ?&const RECT, flags: UINT) -> BOOL;
pub extern fn DrawAnimatedRects(hwnd: HWND, idAni: c_int, lprcFrom: ?&const RECT, lprcTo: ?&const RECT) -> BOOL;
pub const struct_tagACCEL = extern struct {
fVirt: BYTE,
key: WORD,
cmd: WORD,
};
pub const ACCEL = struct_tagACCEL;
pub const LPACCEL = ?&struct_tagACCEL;
pub const struct_tagPAINTSTRUCT = extern struct {
hdc: HDC,
fErase: BOOL,
rcPaint: RECT,
fRestore: BOOL,
fIncUpdate: BOOL,
rgbReserved: [32]BYTE,
};
pub const PAINTSTRUCT = struct_tagPAINTSTRUCT;
pub const PPAINTSTRUCT = ?&struct_tagPAINTSTRUCT;
pub const NPPAINTSTRUCT = ?&struct_tagPAINTSTRUCT;
pub const LPPAINTSTRUCT = ?&struct_tagPAINTSTRUCT;
pub const CREATESTRUCTA = struct_tagCREATESTRUCTA;
pub const LPCREATESTRUCTA = ?&struct_tagCREATESTRUCTA;
pub const CREATESTRUCTW = struct_tagCREATESTRUCTW;
pub const LPCREATESTRUCTW = ?&struct_tagCREATESTRUCTW;
pub const CREATESTRUCT = CREATESTRUCTA;
pub const LPCREATESTRUCT = LPCREATESTRUCTA;
pub const struct_tagWINDOWPLACEMENT = extern struct {
length: UINT,
flags: UINT,
showCmd: UINT,
ptMinPosition: POINT,
ptMaxPosition: POINT,
rcNormalPosition: RECT,
};
pub const WINDOWPLACEMENT = struct_tagWINDOWPLACEMENT;
pub const PWINDOWPLACEMENT = ?&WINDOWPLACEMENT;
pub const LPWINDOWPLACEMENT = ?&WINDOWPLACEMENT;
pub const struct_tagNMHDR = extern struct {
hwndFrom: HWND,
idFrom: UINT_PTR,
code: UINT,
};
pub const NMHDR = struct_tagNMHDR;
pub const LPNMHDR = ?&NMHDR;
pub const struct_tagSTYLESTRUCT = extern struct {
styleOld: DWORD,
styleNew: DWORD,
};
pub const STYLESTRUCT = struct_tagSTYLESTRUCT;
pub const LPSTYLESTRUCT = ?&struct_tagSTYLESTRUCT;
pub const struct_tagMEASUREITEMSTRUCT = extern struct {
CtlType: UINT,
CtlID: UINT,
itemID: UINT,
itemWidth: UINT,
itemHeight: UINT,
itemData: ULONG_PTR,
};
pub const MEASUREITEMSTRUCT = struct_tagMEASUREITEMSTRUCT;
pub const PMEASUREITEMSTRUCT = ?&struct_tagMEASUREITEMSTRUCT;
pub const LPMEASUREITEMSTRUCT = ?&struct_tagMEASUREITEMSTRUCT;
pub const struct_tagDRAWITEMSTRUCT = extern struct {
CtlType: UINT,
CtlID: UINT,
itemID: UINT,
itemAction: UINT,
itemState: UINT,
hwndItem: HWND,
hDC: HDC,
rcItem: RECT,
itemData: ULONG_PTR,
};
pub const DRAWITEMSTRUCT = struct_tagDRAWITEMSTRUCT;
pub const PDRAWITEMSTRUCT = ?&struct_tagDRAWITEMSTRUCT;
pub const LPDRAWITEMSTRUCT = ?&struct_tagDRAWITEMSTRUCT;
pub const struct_tagDELETEITEMSTRUCT = extern struct {
CtlType: UINT,
CtlID: UINT,
itemID: UINT,
hwndItem: HWND,
itemData: ULONG_PTR,
};
pub const DELETEITEMSTRUCT = struct_tagDELETEITEMSTRUCT;
pub const PDELETEITEMSTRUCT = ?&struct_tagDELETEITEMSTRUCT;
pub const LPDELETEITEMSTRUCT = ?&struct_tagDELETEITEMSTRUCT;
pub const struct_tagCOMPAREITEMSTRUCT = extern struct {
CtlType: UINT,
CtlID: UINT,
hwndItem: HWND,
itemID1: UINT,
itemData1: ULONG_PTR,
itemID2: UINT,
itemData2: ULONG_PTR,
dwLocaleId: DWORD,
};
pub const COMPAREITEMSTRUCT = struct_tagCOMPAREITEMSTRUCT;
pub const PCOMPAREITEMSTRUCT = ?&struct_tagCOMPAREITEMSTRUCT;
pub const LPCOMPAREITEMSTRUCT = ?&struct_tagCOMPAREITEMSTRUCT;
pub extern fn GetMessageA(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT) -> BOOL;
pub extern fn GetMessageW(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT) -> BOOL;
pub extern fn TranslateMessage(lpMsg: ?&const MSG) -> BOOL;
pub extern fn DispatchMessageA(lpMsg: ?&const MSG) -> LRESULT;
pub extern fn DispatchMessageW(lpMsg: ?&const MSG) -> LRESULT;
pub extern fn SetMessageQueue(cMessagesMax: c_int) -> BOOL;
pub extern fn PeekMessageA(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT) -> BOOL;
pub extern fn PeekMessageW(lpMsg: LPMSG, hWnd: HWND, wMsgFilterMin: UINT, wMsgFilterMax: UINT, wRemoveMsg: UINT) -> BOOL;
pub extern fn RegisterHotKey(hWnd: HWND, id: c_int, fsModifiers: UINT, vk: UINT) -> BOOL;
pub extern fn UnregisterHotKey(hWnd: HWND, id: c_int) -> BOOL;
pub extern fn ExitWindowsEx(uFlags: UINT, dwReason: DWORD) -> BOOL;
pub extern fn SwapMouseButton(fSwap: BOOL) -> BOOL;
pub extern fn GetMessagePos() -> DWORD;
pub extern fn GetMessageTime() -> LONG;
pub extern fn GetMessageExtraInfo() -> LPARAM;
pub extern fn GetUnpredictedMessagePos() -> DWORD;
pub extern fn IsWow64Message() -> BOOL;
pub extern fn SetMessageExtraInfo(lParam: LPARAM) -> LPARAM;
pub extern fn SendMessageA(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn SendMessageW(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn SendMessageTimeoutA(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, fuFlags: UINT, uTimeout: UINT, lpdwResult: PDWORD_PTR) -> LRESULT;
pub extern fn SendMessageTimeoutW(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, fuFlags: UINT, uTimeout: UINT, lpdwResult: PDWORD_PTR) -> LRESULT;
pub extern fn SendNotifyMessageA(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> BOOL;
pub extern fn SendNotifyMessageW(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> BOOL;
pub extern fn SendMessageCallbackA(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, lpResultCallBack: SENDASYNCPROC, dwData: ULONG_PTR) -> BOOL;
pub extern fn SendMessageCallbackW(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM, lpResultCallBack: SENDASYNCPROC, dwData: ULONG_PTR) -> BOOL;
pub const BSMINFO = extern struct {
cbSize: UINT,
hdesk: HDESK,
hwnd: HWND,
luid: LUID,
};
pub const PBSMINFO = ?&extern struct {
cbSize: UINT,
hdesk: HDESK,
hwnd: HWND,
luid: LUID,
};
pub extern fn BroadcastSystemMessageExA(flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM, pbsmInfo: PBSMINFO) -> c_long;
pub extern fn BroadcastSystemMessageExW(flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM, pbsmInfo: PBSMINFO) -> c_long;
pub extern fn BroadcastSystemMessageA(flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> c_long;
pub extern fn BroadcastSystemMessageW(flags: DWORD, lpInfo: LPDWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> c_long;
pub const HDEVNOTIFY = PVOID;
pub const PHDEVNOTIFY = ?&HDEVNOTIFY;
pub extern fn RegisterDeviceNotificationA(hRecipient: HANDLE, NotificationFilter: LPVOID, Flags: DWORD) -> HDEVNOTIFY;
pub extern fn RegisterDeviceNotificationW(hRecipient: HANDLE, NotificationFilter: LPVOID, Flags: DWORD) -> HDEVNOTIFY;
pub extern fn UnregisterDeviceNotification(Handle: HDEVNOTIFY) -> BOOL;
pub const HPOWERNOTIFY = PVOID;
pub const PHPOWERNOTIFY = ?&HPOWERNOTIFY;
pub extern fn RegisterPowerSettingNotification(hRecipient: HANDLE, PowerSettingGuid: LPCGUID, Flags: DWORD) -> HPOWERNOTIFY;
pub extern fn UnregisterPowerSettingNotification(Handle: HPOWERNOTIFY) -> BOOL;
pub extern fn RegisterSuspendResumeNotification(hRecipient: HANDLE, Flags: DWORD) -> HPOWERNOTIFY;
pub extern fn UnregisterSuspendResumeNotification(Handle: HPOWERNOTIFY) -> BOOL;
pub extern fn PostMessageA(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> BOOL;
pub extern fn PostMessageW(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> BOOL;
pub extern fn PostThreadMessageA(idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> BOOL;
pub extern fn PostThreadMessageW(idThread: DWORD, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> BOOL;
pub extern fn AttachThreadInput(idAttach: DWORD, idAttachTo: DWORD, fAttach: BOOL) -> BOOL;
pub extern fn ReplyMessage(lResult: LRESULT) -> BOOL;
pub extern fn WaitMessage() -> BOOL;
pub extern fn WaitForInputIdle(hProcess: HANDLE, dwMilliseconds: DWORD) -> DWORD;
pub extern fn DefWindowProcA(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn DefWindowProcW(hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn PostQuitMessage(nExitCode: c_int);
pub extern fn CallWindowProcA(lpPrevWndFunc: WNDPROC, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn CallWindowProcW(lpPrevWndFunc: WNDPROC, hWnd: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn InSendMessage() -> BOOL;
pub extern fn InSendMessageEx(lpReserved: LPVOID) -> DWORD;
pub extern fn GetDoubleClickTime() -> UINT;
pub extern fn SetDoubleClickTime(arg0: UINT) -> BOOL;
pub extern fn RegisterClassA(lpWndClass: ?&const WNDCLASSA) -> ATOM;
pub extern fn RegisterClassW(lpWndClass: ?&const WNDCLASSW) -> ATOM;
pub extern fn UnregisterClassA(lpClassName: LPCSTR, hInstance: HINSTANCE) -> BOOL;
pub extern fn UnregisterClassW(lpClassName: LPCWSTR, hInstance: HINSTANCE) -> BOOL;
pub extern fn GetClassInfoA(hInstance: HINSTANCE, lpClassName: LPCSTR, lpWndClass: LPWNDCLASSA) -> BOOL;
pub extern fn GetClassInfoW(hInstance: HINSTANCE, lpClassName: LPCWSTR, lpWndClass: LPWNDCLASSW) -> BOOL;
pub extern fn RegisterClassExA(arg0: ?&const WNDCLASSEXA) -> ATOM;
pub extern fn RegisterClassExW(arg0: ?&const WNDCLASSEXW) -> ATOM;
pub extern fn GetClassInfoExA(hInstance: HINSTANCE, lpszClass: LPCSTR, lpwcx: LPWNDCLASSEXA) -> BOOL;
pub extern fn GetClassInfoExW(hInstance: HINSTANCE, lpszClass: LPCWSTR, lpwcx: LPWNDCLASSEXW) -> BOOL;
pub const PREGISTERCLASSNAMEW = ?extern fn(LPCWSTR) -> BOOLEAN;
pub extern fn CreateWindowExA(dwExStyle: DWORD, lpClassName: LPCSTR, lpWindowName: LPCSTR, dwStyle: DWORD, X: c_int, Y: c_int, nWidth: c_int, nHeight: c_int, hWndParent: HWND, hMenu: HMENU, hInstance: HINSTANCE, lpParam: LPVOID) -> HWND;
pub extern fn CreateWindowExW(dwExStyle: DWORD, lpClassName: LPCWSTR, lpWindowName: LPCWSTR, dwStyle: DWORD, X: c_int, Y: c_int, nWidth: c_int, nHeight: c_int, hWndParent: HWND, hMenu: HMENU, hInstance: HINSTANCE, lpParam: LPVOID) -> HWND;
pub extern fn IsWindow(hWnd: HWND) -> BOOL;
pub extern fn IsMenu(hMenu: HMENU) -> BOOL;
pub extern fn IsChild(hWndParent: HWND, hWnd: HWND) -> BOOL;
pub extern fn DestroyWindow(hWnd: HWND) -> BOOL;
pub extern fn ShowWindow(hWnd: HWND, nCmdShow: c_int) -> BOOL;
pub extern fn AnimateWindow(hWnd: HWND, dwTime: DWORD, dwFlags: DWORD) -> BOOL;
pub extern fn UpdateLayeredWindow(hWnd: HWND, hdcDst: HDC, pptDst: ?&POINT, psize: ?&SIZE, hdcSrc: HDC, pptSrc: ?&POINT, crKey: COLORREF, pblend: ?&BLENDFUNCTION, dwFlags: DWORD) -> BOOL;
pub const struct_tagUPDATELAYEREDWINDOWINFO = extern struct {
cbSize: DWORD,
hdcDst: HDC,
pptDst: ?&const POINT,
psize: ?&const SIZE,
hdcSrc: HDC,
pptSrc: ?&const POINT,
crKey: COLORREF,
pblend: ?&const BLENDFUNCTION,
dwFlags: DWORD,
prcDirty: ?&const RECT,
};
pub const UPDATELAYEREDWINDOWINFO = struct_tagUPDATELAYEREDWINDOWINFO;
pub const PUPDATELAYEREDWINDOWINFO = ?&struct_tagUPDATELAYEREDWINDOWINFO;
pub extern fn UpdateLayeredWindowIndirect(hWnd: HWND, pULWInfo: ?&const UPDATELAYEREDWINDOWINFO) -> BOOL;
pub extern fn GetLayeredWindowAttributes(hwnd: HWND, pcrKey: ?&COLORREF, pbAlpha: ?&BYTE, pdwFlags: ?&DWORD) -> BOOL;
pub extern fn PrintWindow(hwnd: HWND, hdcBlt: HDC, nFlags: UINT) -> BOOL;
pub extern fn SetLayeredWindowAttributes(hwnd: HWND, crKey: COLORREF, bAlpha: BYTE, dwFlags: DWORD) -> BOOL;
pub extern fn ShowWindowAsync(hWnd: HWND, nCmdShow: c_int) -> BOOL;
pub extern fn FlashWindow(hWnd: HWND, bInvert: BOOL) -> BOOL;
pub const FLASHWINFO = extern struct {
cbSize: UINT,
hwnd: HWND,
dwFlags: DWORD,
uCount: UINT,
dwTimeout: DWORD,
};
pub const PFLASHWINFO = ?&extern struct {
cbSize: UINT,
hwnd: HWND,
dwFlags: DWORD,
uCount: UINT,
dwTimeout: DWORD,
};
pub extern fn FlashWindowEx(pfwi: PFLASHWINFO) -> BOOL;
pub extern fn ShowOwnedPopups(hWnd: HWND, fShow: BOOL) -> BOOL;
pub extern fn OpenIcon(hWnd: HWND) -> BOOL;
pub extern fn CloseWindow(hWnd: HWND) -> BOOL;
pub extern fn MoveWindow(hWnd: HWND, X: c_int, Y: c_int, nWidth: c_int, nHeight: c_int, bRepaint: BOOL) -> BOOL;
pub extern fn SetWindowPos(hWnd: HWND, hWndInsertAfter: HWND, X: c_int, Y: c_int, cx: c_int, cy: c_int, uFlags: UINT) -> BOOL;
pub extern fn GetWindowPlacement(hWnd: HWND, lpwndpl: ?&WINDOWPLACEMENT) -> BOOL;
pub extern fn SetWindowPlacement(hWnd: HWND, lpwndpl: ?&const WINDOWPLACEMENT) -> BOOL;
pub extern fn GetWindowDisplayAffinity(hWnd: HWND, pdwAffinity: ?&DWORD) -> BOOL;
pub extern fn SetWindowDisplayAffinity(hWnd: HWND, dwAffinity: DWORD) -> BOOL;
pub extern fn BeginDeferWindowPos(nNumWindows: c_int) -> HDWP;
pub extern fn DeferWindowPos(hWinPosInfo: HDWP, hWnd: HWND, hWndInsertAfter: HWND, x: c_int, y: c_int, cx: c_int, cy: c_int, uFlags: UINT) -> HDWP;
pub extern fn EndDeferWindowPos(hWinPosInfo: HDWP) -> BOOL;
pub extern fn IsWindowVisible(hWnd: HWND) -> BOOL;
pub extern fn IsIconic(hWnd: HWND) -> BOOL;
pub extern fn AnyPopup() -> BOOL;
pub extern fn BringWindowToTop(hWnd: HWND) -> BOOL;
pub extern fn IsZoomed(hWnd: HWND) -> BOOL;
pub const DLGTEMPLATE = extern struct {
style: DWORD,
dwExtendedStyle: DWORD,
cdit: WORD,
x: c_short,
y: c_short,
cx: c_short,
cy: c_short,
};
pub const LPDLGTEMPLATEA = ?&DLGTEMPLATE;
pub const LPDLGTEMPLATEW = ?&DLGTEMPLATE;
pub const LPDLGTEMPLATE = LPDLGTEMPLATEA;
pub const LPCDLGTEMPLATEA = ?&const DLGTEMPLATE;
pub const LPCDLGTEMPLATEW = ?&const DLGTEMPLATE;
pub const LPCDLGTEMPLATE = LPCDLGTEMPLATEA;
pub const DLGITEMTEMPLATE = extern struct {
style: DWORD,
dwExtendedStyle: DWORD,
x: c_short,
y: c_short,
cx: c_short,
cy: c_short,
id: WORD,
};
pub const PDLGITEMTEMPLATEA = ?&DLGITEMTEMPLATE;
pub const PDLGITEMTEMPLATEW = ?&DLGITEMTEMPLATE;
pub const PDLGITEMTEMPLATE = PDLGITEMTEMPLATEA;
pub const LPDLGITEMTEMPLATEA = ?&DLGITEMTEMPLATE;
pub const LPDLGITEMTEMPLATEW = ?&DLGITEMTEMPLATE;
pub const LPDLGITEMTEMPLATE = LPDLGITEMTEMPLATEA;
pub extern fn CreateDialogParamA(hInstance: HINSTANCE, lpTemplateName: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM) -> HWND;
pub extern fn CreateDialogParamW(hInstance: HINSTANCE, lpTemplateName: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM) -> HWND;
pub extern fn CreateDialogIndirectParamA(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEA, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM) -> HWND;
pub extern fn CreateDialogIndirectParamW(hInstance: HINSTANCE, lpTemplate: LPCDLGTEMPLATEW, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM) -> HWND;
pub extern fn DialogBoxParamA(hInstance: HINSTANCE, lpTemplateName: LPCSTR, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM) -> INT_PTR;
pub extern fn DialogBoxParamW(hInstance: HINSTANCE, lpTemplateName: LPCWSTR, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM) -> INT_PTR;
pub extern fn DialogBoxIndirectParamA(hInstance: HINSTANCE, hDialogTemplate: LPCDLGTEMPLATEA, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM) -> INT_PTR;
pub extern fn DialogBoxIndirectParamW(hInstance: HINSTANCE, hDialogTemplate: LPCDLGTEMPLATEW, hWndParent: HWND, lpDialogFunc: DLGPROC, dwInitParam: LPARAM) -> INT_PTR;
pub extern fn EndDialog(hDlg: HWND, nResult: INT_PTR) -> BOOL;
pub extern fn GetDlgItem(hDlg: HWND, nIDDlgItem: c_int) -> HWND;
pub extern fn SetDlgItemInt(hDlg: HWND, nIDDlgItem: c_int, uValue: UINT, bSigned: BOOL) -> BOOL;
pub extern fn GetDlgItemInt(hDlg: HWND, nIDDlgItem: c_int, lpTranslated: ?&BOOL, bSigned: BOOL) -> UINT;
pub extern fn SetDlgItemTextA(hDlg: HWND, nIDDlgItem: c_int, lpString: LPCSTR) -> BOOL;
pub extern fn SetDlgItemTextW(hDlg: HWND, nIDDlgItem: c_int, lpString: LPCWSTR) -> BOOL;
pub extern fn GetDlgItemTextA(hDlg: HWND, nIDDlgItem: c_int, lpString: LPSTR, cchMax: c_int) -> UINT;
pub extern fn GetDlgItemTextW(hDlg: HWND, nIDDlgItem: c_int, lpString: LPWSTR, cchMax: c_int) -> UINT;
pub extern fn CheckDlgButton(hDlg: HWND, nIDButton: c_int, uCheck: UINT) -> BOOL;
pub extern fn CheckRadioButton(hDlg: HWND, nIDFirstButton: c_int, nIDLastButton: c_int, nIDCheckButton: c_int) -> BOOL;
pub extern fn IsDlgButtonChecked(hDlg: HWND, nIDButton: c_int) -> UINT;
pub extern fn SendDlgItemMessageA(hDlg: HWND, nIDDlgItem: c_int, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn SendDlgItemMessageW(hDlg: HWND, nIDDlgItem: c_int, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn GetNextDlgGroupItem(hDlg: HWND, hCtl: HWND, bPrevious: BOOL) -> HWND;
pub extern fn GetNextDlgTabItem(hDlg: HWND, hCtl: HWND, bPrevious: BOOL) -> HWND;
pub extern fn GetDlgCtrlID(hWnd: HWND) -> c_int;
pub extern fn GetDialogBaseUnits() -> c_long;
pub extern fn DefDlgProcA(hDlg: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn DefDlgProcW(hDlg: HWND, Msg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn CallMsgFilterA(lpMsg: LPMSG, nCode: c_int) -> BOOL;
pub extern fn CallMsgFilterW(lpMsg: LPMSG, nCode: c_int) -> BOOL;
pub extern fn OpenClipboard(hWndNewOwner: HWND) -> BOOL;
pub extern fn CloseClipboard() -> BOOL;
pub extern fn GetClipboardSequenceNumber() -> DWORD;
pub extern fn GetClipboardOwner() -> HWND;
pub extern fn SetClipboardViewer(hWndNewViewer: HWND) -> HWND;
pub extern fn GetClipboardViewer() -> HWND;
pub extern fn ChangeClipboardChain(hWndRemove: HWND, hWndNewNext: HWND) -> BOOL;
pub extern fn SetClipboardData(uFormat: UINT, hMem: HANDLE) -> HANDLE;
pub extern fn GetClipboardData(uFormat: UINT) -> HANDLE;
pub extern fn RegisterClipboardFormatA(lpszFormat: LPCSTR) -> UINT;
pub extern fn RegisterClipboardFormatW(lpszFormat: LPCWSTR) -> UINT;
pub extern fn CountClipboardFormats() -> c_int;
pub extern fn EnumClipboardFormats(format: UINT) -> UINT;
pub extern fn GetClipboardFormatNameA(format: UINT, lpszFormatName: LPSTR, cchMaxCount: c_int) -> c_int;
pub extern fn GetClipboardFormatNameW(format: UINT, lpszFormatName: LPWSTR, cchMaxCount: c_int) -> c_int;
pub extern fn EmptyClipboard() -> BOOL;
pub extern fn IsClipboardFormatAvailable(format: UINT) -> BOOL;
pub extern fn GetPriorityClipboardFormat(paFormatPriorityList: ?&UINT, cFormats: c_int) -> c_int;
pub extern fn GetOpenClipboardWindow() -> HWND;
pub extern fn AddClipboardFormatListener(hwnd: HWND) -> BOOL;
pub extern fn RemoveClipboardFormatListener(hwnd: HWND) -> BOOL;
pub extern fn GetUpdatedClipboardFormats(lpuiFormats: PUINT, cFormats: UINT, pcFormatsOut: PUINT) -> BOOL;
pub extern fn CharToOemA(pSrc: LPCSTR, pDst: LPSTR) -> BOOL;
pub extern fn CharToOemW(pSrc: LPCWSTR, pDst: LPSTR) -> BOOL;
pub extern fn OemToCharA(pSrc: LPCSTR, pDst: LPSTR) -> BOOL;
pub extern fn OemToCharW(pSrc: LPCSTR, pDst: LPWSTR) -> BOOL;
pub extern fn CharToOemBuffA(lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD) -> BOOL;
pub extern fn CharToOemBuffW(lpszSrc: LPCWSTR, lpszDst: LPSTR, cchDstLength: DWORD) -> BOOL;
pub extern fn OemToCharBuffA(lpszSrc: LPCSTR, lpszDst: LPSTR, cchDstLength: DWORD) -> BOOL;
pub extern fn OemToCharBuffW(lpszSrc: LPCSTR, lpszDst: LPWSTR, cchDstLength: DWORD) -> BOOL;
pub extern fn CharUpperA(lpsz: LPSTR) -> LPSTR;
pub extern fn CharUpperW(lpsz: LPWSTR) -> LPWSTR;
pub extern fn CharUpperBuffA(lpsz: LPSTR, cchLength: DWORD) -> DWORD;
pub extern fn CharUpperBuffW(lpsz: LPWSTR, cchLength: DWORD) -> DWORD;
pub extern fn CharLowerA(lpsz: LPSTR) -> LPSTR;
pub extern fn CharLowerW(lpsz: LPWSTR) -> LPWSTR;
pub extern fn CharLowerBuffA(lpsz: LPSTR, cchLength: DWORD) -> DWORD;
pub extern fn CharLowerBuffW(lpsz: LPWSTR, cchLength: DWORD) -> DWORD;
pub extern fn CharNextA(lpsz: LPCSTR) -> LPSTR;
pub extern fn CharNextW(lpsz: LPCWSTR) -> LPWSTR;
pub extern fn CharPrevA(lpszStart: LPCSTR, lpszCurrent: LPCSTR) -> LPSTR;
pub extern fn CharPrevW(lpszStart: LPCWSTR, lpszCurrent: LPCWSTR) -> LPWSTR;
pub extern fn CharNextExA(CodePage: WORD, lpCurrentChar: LPCSTR, dwFlags: DWORD) -> LPSTR;
pub extern fn CharPrevExA(CodePage: WORD, lpStart: LPCSTR, lpCurrentChar: LPCSTR, dwFlags: DWORD) -> LPSTR;
pub extern fn IsCharAlphaA(ch: CHAR) -> BOOL;
pub extern fn IsCharAlphaW(ch: WCHAR) -> BOOL;
pub extern fn IsCharAlphaNumericA(ch: CHAR) -> BOOL;
pub extern fn IsCharAlphaNumericW(ch: WCHAR) -> BOOL;
pub extern fn IsCharUpperA(ch: CHAR) -> BOOL;
pub extern fn IsCharUpperW(ch: WCHAR) -> BOOL;
pub extern fn IsCharLowerA(ch: CHAR) -> BOOL;
pub extern fn IsCharLowerW(ch: WCHAR) -> BOOL;
pub extern fn SetFocus(hWnd: HWND) -> HWND;
pub extern fn GetActiveWindow() -> HWND;
pub extern fn GetFocus() -> HWND;
pub extern fn GetKBCodePage() -> UINT;
pub extern fn GetKeyState(nVirtKey: c_int) -> SHORT;
pub extern fn GetAsyncKeyState(vKey: c_int) -> SHORT;
pub extern fn GetKeyboardState(lpKeyState: PBYTE) -> BOOL;
pub extern fn SetKeyboardState(lpKeyState: LPBYTE) -> BOOL;
pub extern fn GetKeyNameTextA(lParam: LONG, lpString: LPSTR, cchSize: c_int) -> c_int;
pub extern fn GetKeyNameTextW(lParam: LONG, lpString: LPWSTR, cchSize: c_int) -> c_int;
pub extern fn GetKeyboardType(nTypeFlag: c_int) -> c_int;
pub extern fn ToAscii(uVirtKey: UINT, uScanCode: UINT, lpKeyState: ?&const BYTE, lpChar: LPWORD, uFlags: UINT) -> c_int;
pub extern fn ToAsciiEx(uVirtKey: UINT, uScanCode: UINT, lpKeyState: ?&const BYTE, lpChar: LPWORD, uFlags: UINT, dwhkl: HKL) -> c_int;
pub extern fn ToUnicode(wVirtKey: UINT, wScanCode: UINT, lpKeyState: ?&const BYTE, pwszBuff: LPWSTR, cchBuff: c_int, wFlags: UINT) -> c_int;
pub extern fn OemKeyScan(wOemChar: WORD) -> DWORD;
pub extern fn VkKeyScanA(ch: CHAR) -> SHORT;
pub extern fn VkKeyScanW(ch: WCHAR) -> SHORT;
pub extern fn VkKeyScanExA(ch: CHAR, dwhkl: HKL) -> SHORT;
pub extern fn VkKeyScanExW(ch: WCHAR, dwhkl: HKL) -> SHORT;
pub extern fn keybd_event(bVk: BYTE, bScan: BYTE, dwFlags: DWORD, dwExtraInfo: ULONG_PTR);
pub extern fn mouse_event(dwFlags: DWORD, dx: DWORD, dy: DWORD, dwData: DWORD, dwExtraInfo: ULONG_PTR);
pub const struct_tagMOUSEINPUT = extern struct {
dx: LONG,
dy: LONG,
mouseData: DWORD,
dwFlags: DWORD,
time: DWORD,
dwExtraInfo: ULONG_PTR,
};
pub const MOUSEINPUT = struct_tagMOUSEINPUT;
pub const PMOUSEINPUT = ?&struct_tagMOUSEINPUT;
pub const LPMOUSEINPUT = ?&struct_tagMOUSEINPUT;
pub const struct_tagKEYBDINPUT = extern struct {
wVk: WORD,
wScan: WORD,
dwFlags: DWORD,
time: DWORD,
dwExtraInfo: ULONG_PTR,
};
pub const KEYBDINPUT = struct_tagKEYBDINPUT;
pub const PKEYBDINPUT = ?&struct_tagKEYBDINPUT;
pub const LPKEYBDINPUT = ?&struct_tagKEYBDINPUT;
pub const struct_tagHARDWAREINPUT = extern struct {
uMsg: DWORD,
wParamL: WORD,
wParamH: WORD,
};
pub const HARDWAREINPUT = struct_tagHARDWAREINPUT;
pub const PHARDWAREINPUT = ?&struct_tagHARDWAREINPUT;
pub const LPHARDWAREINPUT = ?&struct_tagHARDWAREINPUT;
pub const struct_tagINPUT = @OpaqueType();
pub const INPUT = struct_tagINPUT;
pub const PINPUT = ?&struct_tagINPUT;
pub const LPINPUT = ?&struct_tagINPUT;
pub extern fn SendInput(cInputs: UINT, pInputs: LPINPUT, cbSize: c_int) -> UINT;
pub const struct_HTOUCHINPUT__ = extern struct {
unused: c_int,
};
pub const HTOUCHINPUT = ?&struct_HTOUCHINPUT__;
pub const struct_tagTOUCHINPUT = extern struct {
x: LONG,
y: LONG,
hSource: HANDLE,
dwID: DWORD,
dwFlags: DWORD,
dwMask: DWORD,
dwTime: DWORD,
dwExtraInfo: ULONG_PTR,
cxContact: DWORD,
cyContact: DWORD,
};
pub const TOUCHINPUT = struct_tagTOUCHINPUT;
pub const PTOUCHINPUT = ?&struct_tagTOUCHINPUT;
pub const PCTOUCHINPUT = ?&const TOUCHINPUT;
pub extern fn GetTouchInputInfo(hTouchInput: HTOUCHINPUT, cInputs: UINT, pInputs: PTOUCHINPUT, cbSize: c_int) -> BOOL;
pub extern fn CloseTouchInputHandle(hTouchInput: HTOUCHINPUT) -> BOOL;
pub extern fn RegisterTouchWindow(hwnd: HWND, ulFlags: ULONG) -> BOOL;
pub extern fn UnregisterTouchWindow(hwnd: HWND) -> BOOL;
pub extern fn IsTouchWindow(hwnd: HWND, pulFlags: PULONG) -> BOOL;
pub const PT_POINTER: c_int = 1;
pub const PT_TOUCH: c_int = 2;
pub const PT_PEN: c_int = 3;
pub const PT_MOUSE: c_int = 4;
pub const PT_TOUCHPAD: c_int = 5;
pub const enum_tagPOINTER_INPUT_TYPE = c_int;
pub const POINTER_INPUT_TYPE = DWORD;
pub const POINTER_FLAGS = UINT32;
pub const POINTER_CHANGE_NONE = enum_tagPOINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_NONE;
pub const POINTER_CHANGE_FIRSTBUTTON_DOWN = enum_tagPOINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_FIRSTBUTTON_DOWN;
pub const POINTER_CHANGE_FIRSTBUTTON_UP = enum_tagPOINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_FIRSTBUTTON_UP;
pub const POINTER_CHANGE_SECONDBUTTON_DOWN = enum_tagPOINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_SECONDBUTTON_DOWN;
pub const POINTER_CHANGE_SECONDBUTTON_UP = enum_tagPOINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_SECONDBUTTON_UP;
pub const POINTER_CHANGE_THIRDBUTTON_DOWN = enum_tagPOINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_THIRDBUTTON_DOWN;
pub const POINTER_CHANGE_THIRDBUTTON_UP = enum_tagPOINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_THIRDBUTTON_UP;
pub const POINTER_CHANGE_FOURTHBUTTON_DOWN = enum_tagPOINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_FOURTHBUTTON_DOWN;
pub const POINTER_CHANGE_FOURTHBUTTON_UP = enum_tagPOINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_FOURTHBUTTON_UP;
pub const POINTER_CHANGE_FIFTHBUTTON_DOWN = enum_tagPOINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_FIFTHBUTTON_DOWN;
pub const POINTER_CHANGE_FIFTHBUTTON_UP = enum_tagPOINTER_BUTTON_CHANGE_TYPE.POINTER_CHANGE_FIFTHBUTTON_UP;
pub const enum_tagPOINTER_BUTTON_CHANGE_TYPE = extern enum {
POINTER_CHANGE_NONE,
POINTER_CHANGE_FIRSTBUTTON_DOWN,
POINTER_CHANGE_FIRSTBUTTON_UP,
POINTER_CHANGE_SECONDBUTTON_DOWN,
POINTER_CHANGE_SECONDBUTTON_UP,
POINTER_CHANGE_THIRDBUTTON_DOWN,
POINTER_CHANGE_THIRDBUTTON_UP,
POINTER_CHANGE_FOURTHBUTTON_DOWN,
POINTER_CHANGE_FOURTHBUTTON_UP,
POINTER_CHANGE_FIFTHBUTTON_DOWN,
POINTER_CHANGE_FIFTHBUTTON_UP,
};
pub const POINTER_BUTTON_CHANGE_TYPE = enum_tagPOINTER_BUTTON_CHANGE_TYPE;
pub const struct_tagPOINTER_INFO = extern struct {
pointerType: POINTER_INPUT_TYPE,
pointerId: UINT32,
frameId: UINT32,
pointerFlags: POINTER_FLAGS,
sourceDevice: HANDLE,
hwndTarget: HWND,
ptPixelLocation: POINT,
ptHimetricLocation: POINT,
ptPixelLocationRaw: POINT,
ptHimetricLocationRaw: POINT,
dwTime: DWORD,
historyCount: UINT32,
InputData: INT32,
dwKeyStates: DWORD,
PerformanceCount: UINT64,
ButtonChangeType: POINTER_BUTTON_CHANGE_TYPE,
};
pub const POINTER_INFO = struct_tagPOINTER_INFO;
pub const TOUCH_FLAGS = UINT32;
pub const TOUCH_MASK = UINT32;
pub const struct_tagPOINTER_TOUCH_INFO = extern struct {
pointerInfo: POINTER_INFO,
touchFlags: TOUCH_FLAGS,
touchMask: TOUCH_MASK,
rcContact: RECT,
rcContactRaw: RECT,
orientation: UINT32,
pressure: UINT32,
};
pub const POINTER_TOUCH_INFO = struct_tagPOINTER_TOUCH_INFO;
pub const PEN_FLAGS = UINT32;
pub const PEN_MASK = UINT32;
pub const struct_tagPOINTER_PEN_INFO = extern struct {
pointerInfo: POINTER_INFO,
penFlags: PEN_FLAGS,
penMask: PEN_MASK,
pressure: UINT32,
rotation: UINT32,
tiltX: INT32,
tiltY: INT32,
};
pub const POINTER_PEN_INFO = struct_tagPOINTER_PEN_INFO;
pub extern fn InitializeTouchInjection(maxCount: UINT32, dwMode: DWORD) -> BOOL;
pub extern fn InjectTouchInput(count: UINT32, contacts: ?&const POINTER_TOUCH_INFO) -> BOOL;
pub extern fn GetPointerType(pointerId: UINT32, pointerType: ?&POINTER_INPUT_TYPE) -> BOOL;
pub extern fn GetPointerCursorId(pointerId: UINT32, cursorId: ?&UINT32) -> BOOL;
pub extern fn GetPointerInfo(pointerId: UINT32, pointerInfo: ?&POINTER_INFO) -> BOOL;
pub extern fn GetPointerInfoHistory(pointerId: UINT32, entriesCount: ?&UINT32, pointerInfo: ?&POINTER_INFO) -> BOOL;
pub extern fn GetPointerFrameInfo(pointerId: UINT32, pointerCount: ?&UINT32, pointerInfo: ?&POINTER_INFO) -> BOOL;
pub extern fn GetPointerFrameInfoHistory(pointerId: UINT32, entriesCount: ?&UINT32, pointerCount: ?&UINT32, pointerInfo: ?&POINTER_INFO) -> BOOL;
pub extern fn GetPointerTouchInfo(pointerId: UINT32, touchInfo: ?&POINTER_TOUCH_INFO) -> BOOL;
pub extern fn GetPointerTouchInfoHistory(pointerId: UINT32, entriesCount: ?&UINT32, touchInfo: ?&POINTER_TOUCH_INFO) -> BOOL;
pub extern fn GetPointerFrameTouchInfo(pointerId: UINT32, pointerCount: ?&UINT32, touchInfo: ?&POINTER_TOUCH_INFO) -> BOOL;
pub extern fn GetPointerFrameTouchInfoHistory(pointerId: UINT32, entriesCount: ?&UINT32, pointerCount: ?&UINT32, touchInfo: ?&POINTER_TOUCH_INFO) -> BOOL;
pub extern fn GetPointerPenInfo(pointerId: UINT32, penInfo: ?&POINTER_PEN_INFO) -> BOOL;
pub extern fn GetPointerPenInfoHistory(pointerId: UINT32, entriesCount: ?&UINT32, penInfo: ?&POINTER_PEN_INFO) -> BOOL;
pub extern fn GetPointerFramePenInfo(pointerId: UINT32, pointerCount: ?&UINT32, penInfo: ?&POINTER_PEN_INFO) -> BOOL;
pub extern fn GetPointerFramePenInfoHistory(pointerId: UINT32, entriesCount: ?&UINT32, pointerCount: ?&UINT32, penInfo: ?&POINTER_PEN_INFO) -> BOOL;
pub extern fn SkipPointerFrameMessages(pointerId: UINT32) -> BOOL;
pub extern fn RegisterPointerInputTarget(hwnd: HWND, pointerType: POINTER_INPUT_TYPE) -> BOOL;
pub extern fn UnregisterPointerInputTarget(hwnd: HWND, pointerType: POINTER_INPUT_TYPE) -> BOOL;
pub extern fn EnableMouseInPointer(fEnable: BOOL) -> BOOL;
pub extern fn IsMouseInPointerEnabled() -> BOOL;
pub extern fn RegisterTouchHitTestingWindow(hwnd: HWND, value: ULONG) -> BOOL;
pub const struct_tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION = extern struct {
score: UINT16,
adjustedPoint: POINT,
};
pub const TOUCH_HIT_TESTING_PROXIMITY_EVALUATION = struct_tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION;
pub const PTOUCH_HIT_TESTING_PROXIMITY_EVALUATION = ?&struct_tagTOUCH_HIT_TESTING_PROXIMITY_EVALUATION;
pub const struct_tagTOUCH_HIT_TESTING_INPUT = extern struct {
pointerId: UINT32,
point: POINT,
boundingBox: RECT,
nonOccludedBoundingBox: RECT,
orientation: UINT32,
};
pub const TOUCH_HIT_TESTING_INPUT = struct_tagTOUCH_HIT_TESTING_INPUT;
pub const PTOUCH_HIT_TESTING_INPUT = ?&struct_tagTOUCH_HIT_TESTING_INPUT;
pub extern fn EvaluateProximityToRect(controlBoundingBox: ?&const RECT, pHitTestingInput: ?&const TOUCH_HIT_TESTING_INPUT, pProximityEval: ?&TOUCH_HIT_TESTING_PROXIMITY_EVALUATION) -> BOOL;
pub extern fn EvaluateProximityToPolygon(numVertices: UINT32, controlPolygon: ?&const POINT, pHitTestingInput: ?&const TOUCH_HIT_TESTING_INPUT, pProximityEval: ?&TOUCH_HIT_TESTING_PROXIMITY_EVALUATION) -> BOOL;
pub extern fn PackTouchHitTestingProximityEvaluation(pHitTestingInput: ?&const TOUCH_HIT_TESTING_INPUT, pProximityEval: ?&const TOUCH_HIT_TESTING_PROXIMITY_EVALUATION) -> LRESULT;
pub const FEEDBACK_TOUCH_CONTACTVISUALIZATION: c_int = 1;
pub const FEEDBACK_PEN_BARRELVISUALIZATION: c_int = 2;
pub const FEEDBACK_PEN_TAP: c_int = 3;
pub const FEEDBACK_PEN_DOUBLETAP: c_int = 4;
pub const FEEDBACK_PEN_PRESSANDHOLD: c_int = 5;
pub const FEEDBACK_PEN_RIGHTTAP: c_int = 6;
pub const FEEDBACK_TOUCH_TAP: c_int = 7;
pub const FEEDBACK_TOUCH_DOUBLETAP: c_int = 8;
pub const FEEDBACK_TOUCH_PRESSANDHOLD: c_int = 9;
pub const FEEDBACK_TOUCH_RIGHTTAP: c_int = 10;
pub const FEEDBACK_GESTURE_PRESSANDTAP: c_int = 11;
pub const FEEDBACK_MAX: c_int = -4294967295;
pub const enum_tagFEEDBACK_TYPE = c_int;
pub const FEEDBACK_TOUCH_CONTACTVISUALIZATION: c_int = 1;
pub const FEEDBACK_PEN_BARRELVISUALIZATION: c_int = 2;
pub const FEEDBACK_PEN_TAP: c_int = 3;
pub const FEEDBACK_PEN_DOUBLETAP: c_int = 4;
pub const FEEDBACK_PEN_PRESSANDHOLD: c_int = 5;
pub const FEEDBACK_PEN_RIGHTTAP: c_int = 6;
pub const FEEDBACK_TOUCH_TAP: c_int = 7;
pub const FEEDBACK_TOUCH_DOUBLETAP: c_int = 8;
pub const FEEDBACK_TOUCH_PRESSANDHOLD: c_int = 9;
pub const FEEDBACK_TOUCH_RIGHTTAP: c_int = 10;
pub const FEEDBACK_GESTURE_PRESSANDTAP: c_int = 11;
pub const FEEDBACK_MAX: c_int = -4294967295;
pub const enum_tagFEEDBACK_TYPE = c_int;
pub const FEEDBACK_TYPE = enum_tagFEEDBACK_TYPE;
pub extern fn GetWindowFeedbackSetting(hwnd: HWND, feedback: FEEDBACK_TYPE, dwFlags: DWORD, pSize: ?&UINT32, config: ?&c_void) -> BOOL;
pub extern fn SetWindowFeedbackSetting(hwnd: HWND, feedback: FEEDBACK_TYPE, dwFlags: DWORD, size: UINT32, configuration: ?&const c_void) -> BOOL;
pub const struct_tagINPUT_TRANSFORM = @OpaqueType();
pub const INPUT_TRANSFORM = struct_tagINPUT_TRANSFORM;
pub extern fn GetPointerInputTransform(pointerId: UINT32, historyCount: UINT32, inputTransform: ?&INPUT_TRANSFORM) -> BOOL;
pub const struct_tagLASTINPUTINFO = extern struct {
cbSize: UINT,
dwTime: DWORD,
};
pub const LASTINPUTINFO = struct_tagLASTINPUTINFO;
pub const PLASTINPUTINFO = ?&struct_tagLASTINPUTINFO;
pub extern fn GetLastInputInfo(plii: PLASTINPUTINFO) -> BOOL;
pub extern fn MapVirtualKeyA(uCode: UINT, uMapType: UINT) -> UINT;
pub extern fn MapVirtualKeyW(uCode: UINT, uMapType: UINT) -> UINT;
pub extern fn MapVirtualKeyExA(uCode: UINT, uMapType: UINT, dwhkl: HKL) -> UINT;
pub extern fn MapVirtualKeyExW(uCode: UINT, uMapType: UINT, dwhkl: HKL) -> UINT;
pub extern fn GetInputState() -> BOOL;
pub extern fn GetQueueStatus(flags: UINT) -> DWORD;
pub extern fn GetCapture() -> HWND;
pub extern fn SetCapture(hWnd: HWND) -> HWND;
pub extern fn ReleaseCapture() -> BOOL;
pub extern fn MsgWaitForMultipleObjects(nCount: DWORD, pHandles: ?&const HANDLE, fWaitAll: BOOL, dwMilliseconds: DWORD, dwWakeMask: DWORD) -> DWORD;
pub extern fn MsgWaitForMultipleObjectsEx(nCount: DWORD, pHandles: ?&const HANDLE, dwMilliseconds: DWORD, dwWakeMask: DWORD, dwFlags: DWORD) -> DWORD;
pub extern fn SetTimer(hWnd: HWND, nIDEvent: UINT_PTR, uElapse: UINT, lpTimerFunc: TIMERPROC) -> UINT_PTR;
pub extern fn SetCoalescableTimer(hWnd: HWND, nIDEvent: UINT_PTR, uElapse: UINT, lpTimerFunc: TIMERPROC, uToleranceDelay: ULONG) -> UINT_PTR;
pub extern fn KillTimer(hWnd: HWND, uIDEvent: UINT_PTR) -> BOOL;
pub extern fn IsWindowUnicode(hWnd: HWND) -> BOOL;
pub extern fn EnableWindow(hWnd: HWND, bEnable: BOOL) -> BOOL;
pub extern fn IsWindowEnabled(hWnd: HWND) -> BOOL;
pub extern fn LoadAcceleratorsA(hInstance: HINSTANCE, lpTableName: LPCSTR) -> HACCEL;
pub extern fn LoadAcceleratorsW(hInstance: HINSTANCE, lpTableName: LPCWSTR) -> HACCEL;
pub extern fn CreateAcceleratorTableA(paccel: LPACCEL, cAccel: c_int) -> HACCEL;
pub extern fn CreateAcceleratorTableW(paccel: LPACCEL, cAccel: c_int) -> HACCEL;
pub extern fn DestroyAcceleratorTable(hAccel: HACCEL) -> BOOL;
pub extern fn CopyAcceleratorTableA(hAccelSrc: HACCEL, lpAccelDst: LPACCEL, cAccelEntries: c_int) -> c_int;
pub extern fn CopyAcceleratorTableW(hAccelSrc: HACCEL, lpAccelDst: LPACCEL, cAccelEntries: c_int) -> c_int;
pub extern fn TranslateAcceleratorA(hWnd: HWND, hAccTable: HACCEL, lpMsg: LPMSG) -> c_int;
pub extern fn TranslateAcceleratorW(hWnd: HWND, hAccTable: HACCEL, lpMsg: LPMSG) -> c_int;
pub extern fn GetSystemMetrics(nIndex: c_int) -> c_int;
pub extern fn LoadMenuA(hInstance: HINSTANCE, lpMenuName: LPCSTR) -> HMENU;
pub extern fn LoadMenuW(hInstance: HINSTANCE, lpMenuName: LPCWSTR) -> HMENU;
pub extern fn LoadMenuIndirectA(lpMenuTemplate: ?&const MENUTEMPLATEA) -> HMENU;
pub extern fn LoadMenuIndirectW(lpMenuTemplate: ?&const MENUTEMPLATEW) -> HMENU;
pub extern fn GetMenu(hWnd: HWND) -> HMENU;
pub extern fn SetMenu(hWnd: HWND, hMenu: HMENU) -> BOOL;
pub extern fn ChangeMenuA(hMenu: HMENU, cmd: UINT, lpszNewItem: LPCSTR, cmdInsert: UINT, flags: UINT) -> BOOL;
pub extern fn ChangeMenuW(hMenu: HMENU, cmd: UINT, lpszNewItem: LPCWSTR, cmdInsert: UINT, flags: UINT) -> BOOL;
pub extern fn HiliteMenuItem(hWnd: HWND, hMenu: HMENU, uIDHiliteItem: UINT, uHilite: UINT) -> BOOL;
pub extern fn GetMenuStringA(hMenu: HMENU, uIDItem: UINT, lpString: LPSTR, cchMax: c_int, flags: UINT) -> c_int;
pub extern fn GetMenuStringW(hMenu: HMENU, uIDItem: UINT, lpString: LPWSTR, cchMax: c_int, flags: UINT) -> c_int;
pub extern fn GetMenuState(hMenu: HMENU, uId: UINT, uFlags: UINT) -> UINT;
pub extern fn DrawMenuBar(hWnd: HWND) -> BOOL;
pub extern fn GetSystemMenu(hWnd: HWND, bRevert: BOOL) -> HMENU;
pub extern fn CreateMenu() -> HMENU;
pub extern fn CreatePopupMenu() -> HMENU;
pub extern fn DestroyMenu(hMenu: HMENU) -> BOOL;
pub extern fn CheckMenuItem(hMenu: HMENU, uIDCheckItem: UINT, uCheck: UINT) -> DWORD;
pub extern fn EnableMenuItem(hMenu: HMENU, uIDEnableItem: UINT, uEnable: UINT) -> BOOL;
pub extern fn GetSubMenu(hMenu: HMENU, nPos: c_int) -> HMENU;
pub extern fn GetMenuItemID(hMenu: HMENU, nPos: c_int) -> UINT;
pub extern fn GetMenuItemCount(hMenu: HMENU) -> c_int;
pub extern fn InsertMenuA(hMenu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR) -> BOOL;
pub extern fn InsertMenuW(hMenu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR) -> BOOL;
pub extern fn AppendMenuA(hMenu: HMENU, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR) -> BOOL;
pub extern fn AppendMenuW(hMenu: HMENU, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR) -> BOOL;
pub extern fn ModifyMenuA(hMnu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCSTR) -> BOOL;
pub extern fn ModifyMenuW(hMnu: HMENU, uPosition: UINT, uFlags: UINT, uIDNewItem: UINT_PTR, lpNewItem: LPCWSTR) -> BOOL;
pub extern fn RemoveMenu(hMenu: HMENU, uPosition: UINT, uFlags: UINT) -> BOOL;
pub extern fn DeleteMenu(hMenu: HMENU, uPosition: UINT, uFlags: UINT) -> BOOL;
pub extern fn SetMenuItemBitmaps(hMenu: HMENU, uPosition: UINT, uFlags: UINT, hBitmapUnchecked: HBITMAP, hBitmapChecked: HBITMAP) -> BOOL;
pub extern fn GetMenuCheckMarkDimensions() -> LONG;
pub extern fn TrackPopupMenu(hMenu: HMENU, uFlags: UINT, x: c_int, y: c_int, nReserved: c_int, hWnd: HWND, prcRect: ?&const RECT) -> BOOL;
pub const struct_tagTPMPARAMS = extern struct {
cbSize: UINT,
rcExclude: RECT,
};
pub const TPMPARAMS = struct_tagTPMPARAMS;
pub const LPTPMPARAMS = ?&TPMPARAMS;
pub extern fn TrackPopupMenuEx(hMenu: HMENU, uFlags: UINT, x: c_int, y: c_int, hwnd: HWND, lptpm: LPTPMPARAMS) -> BOOL;
pub extern fn CalculatePopupWindowPosition(anchorPoint: ?&const POINT, windowSize: ?&const SIZE, flags: UINT, excludeRect: ?&RECT, popupWindowPosition: ?&RECT) -> BOOL;
pub const struct_tagMENUINFO = extern struct {
cbSize: DWORD,
fMask: DWORD,
dwStyle: DWORD,
cyMax: UINT,
hbrBack: HBRUSH,
dwContextHelpID: DWORD,
dwMenuData: ULONG_PTR,
};
pub const MENUINFO = struct_tagMENUINFO;
pub const LPMENUINFO = ?&struct_tagMENUINFO;
pub const LPCMENUINFO = ?&const MENUINFO;
pub extern fn GetMenuInfo(arg0: HMENU, arg1: LPMENUINFO) -> BOOL;
pub extern fn SetMenuInfo(arg0: HMENU, arg1: LPCMENUINFO) -> BOOL;
pub extern fn EndMenu() -> BOOL;
pub const struct_tagMENUGETOBJECTINFO = extern struct {
dwFlags: DWORD,
uPos: UINT,
hmenu: HMENU,
riid: PVOID,
pvObj: PVOID,
};
pub const MENUGETOBJECTINFO = struct_tagMENUGETOBJECTINFO;
pub const PMENUGETOBJECTINFO = ?&struct_tagMENUGETOBJECTINFO;
pub const struct_tagMENUITEMINFOA = extern struct {
cbSize: UINT,
fMask: UINT,
fType: UINT,
fState: UINT,
wID: UINT,
hSubMenu: HMENU,
hbmpChecked: HBITMAP,
hbmpUnchecked: HBITMAP,
dwItemData: ULONG_PTR,
dwTypeData: LPSTR,
cch: UINT,
hbmpItem: HBITMAP,
};
pub const MENUITEMINFOA = struct_tagMENUITEMINFOA;
pub const LPMENUITEMINFOA = ?&struct_tagMENUITEMINFOA;
pub const struct_tagMENUITEMINFOW = extern struct {
cbSize: UINT,
fMask: UINT,
fType: UINT,
fState: UINT,
wID: UINT,
hSubMenu: HMENU,
hbmpChecked: HBITMAP,
hbmpUnchecked: HBITMAP,
dwItemData: ULONG_PTR,
dwTypeData: LPWSTR,
cch: UINT,
hbmpItem: HBITMAP,
};
pub const MENUITEMINFOW = struct_tagMENUITEMINFOW;
pub const LPMENUITEMINFOW = ?&struct_tagMENUITEMINFOW;
pub const MENUITEMINFO = MENUITEMINFOA;
pub const LPMENUITEMINFO = LPMENUITEMINFOA;
pub const LPCMENUITEMINFOA = ?&const MENUITEMINFOA;
pub const LPCMENUITEMINFOW = ?&const MENUITEMINFOW;
pub const LPCMENUITEMINFO = LPCMENUITEMINFOA;
pub extern fn InsertMenuItemA(hmenu: HMENU, item: UINT, fByPosition: BOOL, lpmi: LPCMENUITEMINFOA) -> BOOL;
pub extern fn InsertMenuItemW(hmenu: HMENU, item: UINT, fByPosition: BOOL, lpmi: LPCMENUITEMINFOW) -> BOOL;
pub extern fn GetMenuItemInfoA(hmenu: HMENU, item: UINT, fByPosition: BOOL, lpmii: LPMENUITEMINFOA) -> BOOL;
pub extern fn GetMenuItemInfoW(hmenu: HMENU, item: UINT, fByPosition: BOOL, lpmii: LPMENUITEMINFOW) -> BOOL;
pub extern fn SetMenuItemInfoA(hmenu: HMENU, item: UINT, fByPositon: BOOL, lpmii: LPCMENUITEMINFOA) -> BOOL;
pub extern fn SetMenuItemInfoW(hmenu: HMENU, item: UINT, fByPositon: BOOL, lpmii: LPCMENUITEMINFOW) -> BOOL;
pub extern fn GetMenuDefaultItem(hMenu: HMENU, fByPos: UINT, gmdiFlags: UINT) -> UINT;
pub extern fn SetMenuDefaultItem(hMenu: HMENU, uItem: UINT, fByPos: UINT) -> BOOL;
pub extern fn GetMenuItemRect(hWnd: HWND, hMenu: HMENU, uItem: UINT, lprcItem: LPRECT) -> BOOL;
pub extern fn MenuItemFromPoint(hWnd: HWND, hMenu: HMENU, ptScreen: POINT) -> c_int;
pub const struct_tagDROPSTRUCT = extern struct {
hwndSource: HWND,
hwndSink: HWND,
wFmt: DWORD,
dwData: ULONG_PTR,
ptDrop: POINT,
dwControlData: DWORD,
};
pub const DROPSTRUCT = struct_tagDROPSTRUCT;
pub const PDROPSTRUCT = ?&struct_tagDROPSTRUCT;
pub const LPDROPSTRUCT = ?&struct_tagDROPSTRUCT;
pub extern fn DragObject(hwndParent: HWND, hwndFrom: HWND, fmt: UINT, data: ULONG_PTR, hcur: HCURSOR) -> DWORD;
pub extern fn DragDetect(hwnd: HWND, pt: POINT) -> BOOL;
pub extern fn DrawIcon(hDC: HDC, X: c_int, Y: c_int, hIcon: HICON) -> BOOL;
pub const struct_tagDRAWTEXTPARAMS = extern struct {
cbSize: UINT,
iTabLength: c_int,
iLeftMargin: c_int,
iRightMargin: c_int,
uiLengthDrawn: UINT,
};
pub const DRAWTEXTPARAMS = struct_tagDRAWTEXTPARAMS;
pub const LPDRAWTEXTPARAMS = ?&struct_tagDRAWTEXTPARAMS;
pub extern fn DrawTextA(hdc: HDC, lpchText: LPCSTR, cchText: c_int, lprc: LPRECT, format: UINT) -> c_int;
pub extern fn DrawTextW(hdc: HDC, lpchText: LPCWSTR, cchText: c_int, lprc: LPRECT, format: UINT) -> c_int;
pub extern fn DrawTextExA(hdc: HDC, lpchText: LPSTR, cchText: c_int, lprc: LPRECT, format: UINT, lpdtp: LPDRAWTEXTPARAMS) -> c_int;
pub extern fn DrawTextExW(hdc: HDC, lpchText: LPWSTR, cchText: c_int, lprc: LPRECT, format: UINT, lpdtp: LPDRAWTEXTPARAMS) -> c_int;
pub extern fn GrayStringA(hDC: HDC, hBrush: HBRUSH, lpOutputFunc: GRAYSTRINGPROC, lpData: LPARAM, nCount: c_int, X: c_int, Y: c_int, nWidth: c_int, nHeight: c_int) -> BOOL;
pub extern fn GrayStringW(hDC: HDC, hBrush: HBRUSH, lpOutputFunc: GRAYSTRINGPROC, lpData: LPARAM, nCount: c_int, X: c_int, Y: c_int, nWidth: c_int, nHeight: c_int) -> BOOL;
pub extern fn DrawStateA(hdc: HDC, hbrFore: HBRUSH, qfnCallBack: DRAWSTATEPROC, lData: LPARAM, wData: WPARAM, x: c_int, y: c_int, cx: c_int, cy: c_int, uFlags: UINT) -> BOOL;
pub extern fn DrawStateW(hdc: HDC, hbrFore: HBRUSH, qfnCallBack: DRAWSTATEPROC, lData: LPARAM, wData: WPARAM, x: c_int, y: c_int, cx: c_int, cy: c_int, uFlags: UINT) -> BOOL;
pub extern fn TabbedTextOutA(hdc: HDC, x: c_int, y: c_int, lpString: LPCSTR, chCount: c_int, nTabPositions: c_int, lpnTabStopPositions: ?&const INT, nTabOrigin: c_int) -> LONG;
pub extern fn TabbedTextOutW(hdc: HDC, x: c_int, y: c_int, lpString: LPCWSTR, chCount: c_int, nTabPositions: c_int, lpnTabStopPositions: ?&const INT, nTabOrigin: c_int) -> LONG;
pub extern fn GetTabbedTextExtentA(hdc: HDC, lpString: LPCSTR, chCount: c_int, nTabPositions: c_int, lpnTabStopPositions: ?&const INT) -> DWORD;
pub extern fn GetTabbedTextExtentW(hdc: HDC, lpString: LPCWSTR, chCount: c_int, nTabPositions: c_int, lpnTabStopPositions: ?&const INT) -> DWORD;
pub extern fn UpdateWindow(hWnd: HWND) -> BOOL;
pub extern fn SetActiveWindow(hWnd: HWND) -> HWND;
pub extern fn GetForegroundWindow() -> HWND;
pub extern fn PaintDesktop(hdc: HDC) -> BOOL;
pub extern fn SwitchToThisWindow(hwnd: HWND, fUnknown: BOOL);
pub extern fn SetForegroundWindow(hWnd: HWND) -> BOOL;
pub extern fn AllowSetForegroundWindow(dwProcessId: DWORD) -> BOOL;
pub extern fn LockSetForegroundWindow(uLockCode: UINT) -> BOOL;
pub extern fn WindowFromDC(hDC: HDC) -> HWND;
pub extern fn GetDC(hWnd: HWND) -> HDC;
pub extern fn GetDCEx(hWnd: HWND, hrgnClip: HRGN, flags: DWORD) -> HDC;
pub extern fn GetWindowDC(hWnd: HWND) -> HDC;
pub extern fn ReleaseDC(hWnd: HWND, hDC: HDC) -> c_int;
pub extern fn BeginPaint(hWnd: HWND, lpPaint: LPPAINTSTRUCT) -> HDC;
pub extern fn EndPaint(hWnd: HWND, lpPaint: ?&const PAINTSTRUCT) -> BOOL;
pub extern fn GetUpdateRect(hWnd: HWND, lpRect: LPRECT, bErase: BOOL) -> BOOL;
pub extern fn GetUpdateRgn(hWnd: HWND, hRgn: HRGN, bErase: BOOL) -> c_int;
pub extern fn SetWindowRgn(hWnd: HWND, hRgn: HRGN, bRedraw: BOOL) -> c_int;
pub extern fn GetWindowRgn(hWnd: HWND, hRgn: HRGN) -> c_int;
pub extern fn GetWindowRgnBox(hWnd: HWND, lprc: LPRECT) -> c_int;
pub extern fn ExcludeUpdateRgn(hDC: HDC, hWnd: HWND) -> c_int;
pub extern fn InvalidateRect(hWnd: HWND, lpRect: ?&const RECT, bErase: BOOL) -> BOOL;
pub extern fn ValidateRect(hWnd: HWND, lpRect: ?&const RECT) -> BOOL;
pub extern fn InvalidateRgn(hWnd: HWND, hRgn: HRGN, bErase: BOOL) -> BOOL;
pub extern fn ValidateRgn(hWnd: HWND, hRgn: HRGN) -> BOOL;
pub extern fn RedrawWindow(hWnd: HWND, lprcUpdate: ?&const RECT, hrgnUpdate: HRGN, flags: UINT) -> BOOL;
pub extern fn LockWindowUpdate(hWndLock: HWND) -> BOOL;
pub extern fn ScrollWindow(hWnd: HWND, XAmount: c_int, YAmount: c_int, lpRect: ?&const RECT, lpClipRect: ?&const RECT) -> BOOL;
pub extern fn ScrollDC(hDC: HDC, dx: c_int, dy: c_int, lprcScroll: ?&const RECT, lprcClip: ?&const RECT, hrgnUpdate: HRGN, lprcUpdate: LPRECT) -> BOOL;
pub extern fn ScrollWindowEx(hWnd: HWND, dx: c_int, dy: c_int, prcScroll: ?&const RECT, prcClip: ?&const RECT, hrgnUpdate: HRGN, prcUpdate: LPRECT, flags: UINT) -> c_int;
pub extern fn SetScrollPos(hWnd: HWND, nBar: c_int, nPos: c_int, bRedraw: BOOL) -> c_int;
pub extern fn GetScrollPos(hWnd: HWND, nBar: c_int) -> c_int;
pub extern fn SetScrollRange(hWnd: HWND, nBar: c_int, nMinPos: c_int, nMaxPos: c_int, bRedraw: BOOL) -> BOOL;
pub extern fn GetScrollRange(hWnd: HWND, nBar: c_int, lpMinPos: LPINT, lpMaxPos: LPINT) -> BOOL;
pub extern fn ShowScrollBar(hWnd: HWND, wBar: c_int, bShow: BOOL) -> BOOL;
pub extern fn EnableScrollBar(hWnd: HWND, wSBflags: UINT, wArrows: UINT) -> BOOL;
pub extern fn SetPropA(hWnd: HWND, lpString: LPCSTR, hData: HANDLE) -> BOOL;
pub extern fn SetPropW(hWnd: HWND, lpString: LPCWSTR, hData: HANDLE) -> BOOL;
pub extern fn GetPropA(hWnd: HWND, lpString: LPCSTR) -> HANDLE;
pub extern fn GetPropW(hWnd: HWND, lpString: LPCWSTR) -> HANDLE;
pub extern fn RemovePropA(hWnd: HWND, lpString: LPCSTR) -> HANDLE;
pub extern fn RemovePropW(hWnd: HWND, lpString: LPCWSTR) -> HANDLE;
pub extern fn EnumPropsExA(hWnd: HWND, lpEnumFunc: PROPENUMPROCEXA, lParam: LPARAM) -> c_int;
pub extern fn EnumPropsExW(hWnd: HWND, lpEnumFunc: PROPENUMPROCEXW, lParam: LPARAM) -> c_int;
pub extern fn EnumPropsA(hWnd: HWND, lpEnumFunc: PROPENUMPROCA) -> c_int;
pub extern fn EnumPropsW(hWnd: HWND, lpEnumFunc: PROPENUMPROCW) -> c_int;
pub extern fn SetWindowTextA(hWnd: HWND, lpString: LPCSTR) -> BOOL;
pub extern fn SetWindowTextW(hWnd: HWND, lpString: LPCWSTR) -> BOOL;
pub extern fn GetWindowTextA(hWnd: HWND, lpString: LPSTR, nMaxCount: c_int) -> c_int;
pub extern fn GetWindowTextW(hWnd: HWND, lpString: LPWSTR, nMaxCount: c_int) -> c_int;
pub extern fn GetWindowTextLengthA(hWnd: HWND) -> c_int;
pub extern fn GetWindowTextLengthW(hWnd: HWND) -> c_int;
pub extern fn GetClientRect(hWnd: HWND, lpRect: LPRECT) -> BOOL;
pub extern fn GetWindowRect(hWnd: HWND, lpRect: LPRECT) -> BOOL;
pub extern fn AdjustWindowRect(lpRect: LPRECT, dwStyle: DWORD, bMenu: BOOL) -> BOOL;
pub extern fn AdjustWindowRectEx(lpRect: LPRECT, dwStyle: DWORD, bMenu: BOOL, dwExStyle: DWORD) -> BOOL;
pub const struct_tagHELPINFO = extern struct {
cbSize: UINT,
iContextType: c_int,
iCtrlId: c_int,
hItemHandle: HANDLE,
dwContextId: DWORD_PTR,
MousePos: POINT,
};
pub const HELPINFO = struct_tagHELPINFO;
pub const LPHELPINFO = ?&struct_tagHELPINFO;
pub extern fn SetWindowContextHelpId(arg0: HWND, arg1: DWORD) -> BOOL;
pub extern fn GetWindowContextHelpId(arg0: HWND) -> DWORD;
pub extern fn SetMenuContextHelpId(arg0: HMENU, arg1: DWORD) -> BOOL;
pub extern fn GetMenuContextHelpId(arg0: HMENU) -> DWORD;
pub extern fn MessageBoxA(hWnd: HWND, lpText: LPCSTR, lpCaption: LPCSTR, uType: UINT) -> c_int;
pub extern fn MessageBoxW(hWnd: HWND, lpText: LPCWSTR, lpCaption: LPCWSTR, uType: UINT) -> c_int;
pub extern fn MessageBoxExA(hWnd: HWND, lpText: LPCSTR, lpCaption: LPCSTR, uType: UINT, wLanguageId: WORD) -> c_int;
pub extern fn MessageBoxExW(hWnd: HWND, lpText: LPCWSTR, lpCaption: LPCWSTR, uType: UINT, wLanguageId: WORD) -> c_int;
pub const MSGBOXCALLBACK = ?extern fn(LPHELPINFO);
pub const struct_tagMSGBOXPARAMSA = extern struct {
cbSize: UINT,
hwndOwner: HWND,
hInstance: HINSTANCE,
lpszText: LPCSTR,
lpszCaption: LPCSTR,
dwStyle: DWORD,
lpszIcon: LPCSTR,
dwContextHelpId: DWORD_PTR,
lpfnMsgBoxCallback: MSGBOXCALLBACK,
dwLanguageId: DWORD,
};
pub const MSGBOXPARAMSA = struct_tagMSGBOXPARAMSA;
pub const PMSGBOXPARAMSA = ?&struct_tagMSGBOXPARAMSA;
pub const LPMSGBOXPARAMSA = ?&struct_tagMSGBOXPARAMSA;
pub const struct_tagMSGBOXPARAMSW = extern struct {
cbSize: UINT,
hwndOwner: HWND,
hInstance: HINSTANCE,
lpszText: LPCWSTR,
lpszCaption: LPCWSTR,
dwStyle: DWORD,
lpszIcon: LPCWSTR,
dwContextHelpId: DWORD_PTR,
lpfnMsgBoxCallback: MSGBOXCALLBACK,
dwLanguageId: DWORD,
};
pub const MSGBOXPARAMSW = struct_tagMSGBOXPARAMSW;
pub const PMSGBOXPARAMSW = ?&struct_tagMSGBOXPARAMSW;
pub const LPMSGBOXPARAMSW = ?&struct_tagMSGBOXPARAMSW;
pub const MSGBOXPARAMS = MSGBOXPARAMSA;
pub const PMSGBOXPARAMS = PMSGBOXPARAMSA;
pub const LPMSGBOXPARAMS = LPMSGBOXPARAMSA;
pub extern fn MessageBoxIndirectA(lpmbp: ?&const MSGBOXPARAMSA) -> c_int;
pub extern fn MessageBoxIndirectW(lpmbp: ?&const MSGBOXPARAMSW) -> c_int;
pub extern fn MessageBeep(uType: UINT) -> BOOL;
pub extern fn ShowCursor(bShow: BOOL) -> c_int;
pub extern fn SetCursorPos(X: c_int, Y: c_int) -> BOOL;
pub extern fn SetPhysicalCursorPos(X: c_int, Y: c_int) -> BOOL;
pub extern fn SetCursor(hCursor: HCURSOR) -> HCURSOR;
pub extern fn GetCursorPos(lpPoint: LPPOINT) -> BOOL;
pub extern fn GetPhysicalCursorPos(lpPoint: LPPOINT) -> BOOL;
pub extern fn ClipCursor(lpRect: ?&const RECT) -> BOOL;
pub extern fn GetClipCursor(lpRect: LPRECT) -> BOOL;
pub extern fn GetCursor() -> HCURSOR;
pub extern fn CreateCaret(hWnd: HWND, hBitmap: HBITMAP, nWidth: c_int, nHeight: c_int) -> BOOL;
pub extern fn GetCaretBlinkTime() -> UINT;
pub extern fn SetCaretBlinkTime(uMSeconds: UINT) -> BOOL;
pub extern fn DestroyCaret() -> BOOL;
pub extern fn HideCaret(hWnd: HWND) -> BOOL;
pub extern fn ShowCaret(hWnd: HWND) -> BOOL;
pub extern fn SetCaretPos(X: c_int, Y: c_int) -> BOOL;
pub extern fn GetCaretPos(lpPoint: LPPOINT) -> BOOL;
pub extern fn ClientToScreen(hWnd: HWND, lpPoint: LPPOINT) -> BOOL;
pub extern fn ScreenToClient(hWnd: HWND, lpPoint: LPPOINT) -> BOOL;
pub extern fn LogicalToPhysicalPoint(hWnd: HWND, lpPoint: LPPOINT) -> BOOL;
pub extern fn PhysicalToLogicalPoint(hWnd: HWND, lpPoint: LPPOINT) -> BOOL;
pub extern fn LogicalToPhysicalPointForPerMonitorDPI(hWnd: HWND, lpPoint: LPPOINT) -> BOOL;
pub extern fn PhysicalToLogicalPointForPerMonitorDPI(hWnd: HWND, lpPoint: LPPOINT) -> BOOL;
pub extern fn MapWindowPoints(hWndFrom: HWND, hWndTo: HWND, lpPoints: LPPOINT, cPoints: UINT) -> c_int;
pub extern fn WindowFromPoint(Point: POINT) -> HWND;
pub extern fn WindowFromPhysicalPoint(Point: POINT) -> HWND;
pub extern fn ChildWindowFromPoint(hWndParent: HWND, Point: POINT) -> HWND;
pub extern fn ChildWindowFromPointEx(hwnd: HWND, pt: POINT, flags: UINT) -> HWND;
pub extern fn GetSysColor(nIndex: c_int) -> DWORD;
pub extern fn GetSysColorBrush(nIndex: c_int) -> HBRUSH;
pub extern fn SetSysColors(cElements: c_int, lpaElements: ?&const INT, lpaRgbValues: ?&const COLORREF) -> BOOL;
pub extern fn DrawFocusRect(hDC: HDC, lprc: ?&const RECT) -> BOOL;
pub extern fn FillRect(hDC: HDC, lprc: ?&const RECT, hbr: HBRUSH) -> c_int;
pub extern fn FrameRect(hDC: HDC, lprc: ?&const RECT, hbr: HBRUSH) -> c_int;
pub extern fn InvertRect(hDC: HDC, lprc: ?&const RECT) -> BOOL;
pub extern fn SetRect(lprc: LPRECT, xLeft: c_int, yTop: c_int, xRight: c_int, yBottom: c_int) -> BOOL;
pub extern fn SetRectEmpty(lprc: LPRECT) -> BOOL;
pub extern fn CopyRect(lprcDst: LPRECT, lprcSrc: ?&const RECT) -> BOOL;
pub extern fn InflateRect(lprc: LPRECT, dx: c_int, dy: c_int) -> BOOL;
pub extern fn IntersectRect(lprcDst: LPRECT, lprcSrc1: ?&const RECT, lprcSrc2: ?&const RECT) -> BOOL;
pub extern fn UnionRect(lprcDst: LPRECT, lprcSrc1: ?&const RECT, lprcSrc2: ?&const RECT) -> BOOL;
pub extern fn SubtractRect(lprcDst: LPRECT, lprcSrc1: ?&const RECT, lprcSrc2: ?&const RECT) -> BOOL;
pub extern fn OffsetRect(lprc: LPRECT, dx: c_int, dy: c_int) -> BOOL;
pub extern fn IsRectEmpty(lprc: ?&const RECT) -> BOOL;
pub extern fn EqualRect(lprc1: ?&const RECT, lprc2: ?&const RECT) -> BOOL;
pub extern fn PtInRect(lprc: ?&const RECT, pt: POINT) -> BOOL;
pub extern fn GetWindowWord(hWnd: HWND, nIndex: c_int) -> WORD;
pub extern fn SetWindowWord(hWnd: HWND, nIndex: c_int, wNewWord: WORD) -> WORD;
pub extern fn GetWindowLongA(hWnd: HWND, nIndex: c_int) -> LONG;
pub extern fn GetWindowLongW(hWnd: HWND, nIndex: c_int) -> LONG;
pub extern fn SetWindowLongA(hWnd: HWND, nIndex: c_int, dwNewLong: LONG) -> LONG;
pub extern fn SetWindowLongW(hWnd: HWND, nIndex: c_int, dwNewLong: LONG) -> LONG;
pub extern fn GetWindowLongPtrA(hWnd: HWND, nIndex: c_int) -> LONG_PTR;
pub extern fn GetWindowLongPtrW(hWnd: HWND, nIndex: c_int) -> LONG_PTR;
pub extern fn SetWindowLongPtrA(hWnd: HWND, nIndex: c_int, dwNewLong: LONG_PTR) -> LONG_PTR;
pub extern fn SetWindowLongPtrW(hWnd: HWND, nIndex: c_int, dwNewLong: LONG_PTR) -> LONG_PTR;
pub extern fn GetClassWord(hWnd: HWND, nIndex: c_int) -> WORD;
pub extern fn SetClassWord(hWnd: HWND, nIndex: c_int, wNewWord: WORD) -> WORD;
pub extern fn GetClassLongA(hWnd: HWND, nIndex: c_int) -> DWORD;
pub extern fn GetClassLongW(hWnd: HWND, nIndex: c_int) -> DWORD;
pub extern fn SetClassLongA(hWnd: HWND, nIndex: c_int, dwNewLong: LONG) -> DWORD;
pub extern fn SetClassLongW(hWnd: HWND, nIndex: c_int, dwNewLong: LONG) -> DWORD;
pub extern fn GetClassLongPtrA(hWnd: HWND, nIndex: c_int) -> ULONG_PTR;
pub extern fn GetClassLongPtrW(hWnd: HWND, nIndex: c_int) -> ULONG_PTR;
pub extern fn SetClassLongPtrA(hWnd: HWND, nIndex: c_int, dwNewLong: LONG_PTR) -> ULONG_PTR;
pub extern fn SetClassLongPtrW(hWnd: HWND, nIndex: c_int, dwNewLong: LONG_PTR) -> ULONG_PTR;
pub extern fn GetProcessDefaultLayout(pdwDefaultLayout: ?&DWORD) -> BOOL;
pub extern fn SetProcessDefaultLayout(dwDefaultLayout: DWORD) -> BOOL;
pub extern fn GetDesktopWindow() -> HWND;
pub extern fn GetParent(hWnd: HWND) -> HWND;
pub extern fn SetParent(hWndChild: HWND, hWndNewParent: HWND) -> HWND;
pub extern fn EnumChildWindows(hWndParent: HWND, lpEnumFunc: WNDENUMPROC, lParam: LPARAM) -> BOOL;
pub extern fn FindWindowA(lpClassName: LPCSTR, lpWindowName: LPCSTR) -> HWND;
pub extern fn FindWindowW(lpClassName: LPCWSTR, lpWindowName: LPCWSTR) -> HWND;
pub extern fn FindWindowExA(hWndParent: HWND, hWndChildAfter: HWND, lpszClass: LPCSTR, lpszWindow: LPCSTR) -> HWND;
pub extern fn FindWindowExW(hWndParent: HWND, hWndChildAfter: HWND, lpszClass: LPCWSTR, lpszWindow: LPCWSTR) -> HWND;
pub extern fn GetShellWindow() -> HWND;
pub extern fn RegisterShellHookWindow(hwnd: HWND) -> BOOL;
pub extern fn DeregisterShellHookWindow(hwnd: HWND) -> BOOL;
pub extern fn EnumWindows(lpEnumFunc: WNDENUMPROC, lParam: LPARAM) -> BOOL;
pub extern fn EnumThreadWindows(dwThreadId: DWORD, lpfn: WNDENUMPROC, lParam: LPARAM) -> BOOL;
pub extern fn GetClassNameA(hWnd: HWND, lpClassName: LPSTR, nMaxCount: c_int) -> c_int;
pub extern fn GetClassNameW(hWnd: HWND, lpClassName: LPWSTR, nMaxCount: c_int) -> c_int;
pub extern fn GetTopWindow(hWnd: HWND) -> HWND;
pub extern fn GetWindowThreadProcessId(hWnd: HWND, lpdwProcessId: LPDWORD) -> DWORD;
pub extern fn IsGUIThread(bConvert: BOOL) -> BOOL;
pub extern fn GetLastActivePopup(hWnd: HWND) -> HWND;
pub extern fn GetWindow(hWnd: HWND, uCmd: UINT) -> HWND;
pub extern fn SetWindowsHookA(nFilterType: c_int, pfnFilterProc: HOOKPROC) -> HHOOK;
pub extern fn SetWindowsHookW(nFilterType: c_int, pfnFilterProc: HOOKPROC) -> HHOOK;
pub extern fn UnhookWindowsHook(nCode: c_int, pfnFilterProc: HOOKPROC) -> BOOL;
pub extern fn SetWindowsHookExA(idHook: c_int, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD) -> HHOOK;
pub extern fn SetWindowsHookExW(idHook: c_int, lpfn: HOOKPROC, hmod: HINSTANCE, dwThreadId: DWORD) -> HHOOK;
pub extern fn UnhookWindowsHookEx(hhk: HHOOK) -> BOOL;
pub extern fn CallNextHookEx(hhk: HHOOK, nCode: c_int, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn CheckMenuRadioItem(hmenu: HMENU, first: UINT, last: UINT, check: UINT, flags: UINT) -> BOOL;
pub const MENUITEMTEMPLATEHEADER = extern struct {
versionNumber: WORD,
offset: WORD,
};
pub const PMENUITEMTEMPLATEHEADER = ?&extern struct {
versionNumber: WORD,
offset: WORD,
};
pub const MENUITEMTEMPLATE = extern struct {
mtOption: WORD,
mtID: WORD,
mtString: [1]WCHAR,
};
pub const PMENUITEMTEMPLATE = ?&extern struct {
mtOption: WORD,
mtID: WORD,
mtString: [1]WCHAR,
};
pub extern fn LoadBitmapA(hInstance: HINSTANCE, lpBitmapName: LPCSTR) -> HBITMAP;
pub extern fn LoadBitmapW(hInstance: HINSTANCE, lpBitmapName: LPCWSTR) -> HBITMAP;
pub extern fn LoadCursorA(hInstance: HINSTANCE, lpCursorName: LPCSTR) -> HCURSOR;
pub extern fn LoadCursorW(hInstance: HINSTANCE, lpCursorName: LPCWSTR) -> HCURSOR;
pub extern fn LoadCursorFromFileA(lpFileName: LPCSTR) -> HCURSOR;
pub extern fn LoadCursorFromFileW(lpFileName: LPCWSTR) -> HCURSOR;
pub extern fn CreateCursor(hInst: HINSTANCE, xHotSpot: c_int, yHotSpot: c_int, nWidth: c_int, nHeight: c_int, pvANDPlane: ?&const c_void, pvXORPlane: ?&const c_void) -> HCURSOR;
pub extern fn DestroyCursor(hCursor: HCURSOR) -> BOOL;
pub extern fn SetSystemCursor(hcur: HCURSOR, id: DWORD) -> BOOL;
pub const struct__ICONINFO = extern struct {
fIcon: BOOL,
xHotspot: DWORD,
yHotspot: DWORD,
hbmMask: HBITMAP,
hbmColor: HBITMAP,
};
pub const ICONINFO = struct__ICONINFO;
pub const PICONINFO = ?&ICONINFO;
pub extern fn LoadIconA(hInstance: HINSTANCE, lpIconName: LPCSTR) -> HICON;
pub extern fn LoadIconW(hInstance: HINSTANCE, lpIconName: LPCWSTR) -> HICON;
pub extern fn PrivateExtractIconsA(szFileName: LPCSTR, nIconIndex: c_int, cxIcon: c_int, cyIcon: c_int, phicon: ?&HICON, piconid: ?&UINT, nIcons: UINT, flags: UINT) -> UINT;
pub extern fn PrivateExtractIconsW(szFileName: LPCWSTR, nIconIndex: c_int, cxIcon: c_int, cyIcon: c_int, phicon: ?&HICON, piconid: ?&UINT, nIcons: UINT, flags: UINT) -> UINT;
pub extern fn CreateIcon(hInstance: HINSTANCE, nWidth: c_int, nHeight: c_int, cPlanes: BYTE, cBitsPixel: BYTE, lpbANDbits: ?&const BYTE, lpbXORbits: ?&const BYTE) -> HICON;
pub extern fn DestroyIcon(hIcon: HICON) -> BOOL;
pub extern fn LookupIconIdFromDirectory(presbits: PBYTE, fIcon: BOOL) -> c_int;
pub extern fn LookupIconIdFromDirectoryEx(presbits: PBYTE, fIcon: BOOL, cxDesired: c_int, cyDesired: c_int, Flags: UINT) -> c_int;
pub extern fn CreateIconFromResource(presbits: PBYTE, dwResSize: DWORD, fIcon: BOOL, dwVer: DWORD) -> HICON;
pub extern fn CreateIconFromResourceEx(presbits: PBYTE, dwResSize: DWORD, fIcon: BOOL, dwVer: DWORD, cxDesired: c_int, cyDesired: c_int, Flags: UINT) -> HICON;
pub const struct_tagCURSORSHAPE = extern struct {
xHotSpot: c_int,
yHotSpot: c_int,
cx: c_int,
cy: c_int,
cbWidth: c_int,
Planes: BYTE,
BitsPixel: BYTE,
};
pub const CURSORSHAPE = struct_tagCURSORSHAPE;
pub const LPCURSORSHAPE = ?&struct_tagCURSORSHAPE;
pub extern fn LoadImageA(hInst: HINSTANCE, name: LPCSTR, type: UINT, cx: c_int, cy: c_int, fuLoad: UINT) -> HANDLE;
pub extern fn LoadImageW(hInst: HINSTANCE, name: LPCWSTR, type: UINT, cx: c_int, cy: c_int, fuLoad: UINT) -> HANDLE;
pub extern fn CopyImage(h: HANDLE, type: UINT, cx: c_int, cy: c_int, flags: UINT) -> HANDLE;
pub extern fn DrawIconEx(hdc: HDC, xLeft: c_int, yTop: c_int, hIcon: HICON, cxWidth: c_int, cyWidth: c_int, istepIfAniCur: UINT, hbrFlickerFreeDraw: HBRUSH, diFlags: UINT) -> BOOL;
pub extern fn CreateIconIndirect(piconinfo: PICONINFO) -> HICON;
pub extern fn CopyIcon(hIcon: HICON) -> HICON;
pub extern fn GetIconInfo(hIcon: HICON, piconinfo: PICONINFO) -> BOOL;
pub const struct__ICONINFOEXA = extern struct {
cbSize: DWORD,
fIcon: BOOL,
xHotspot: DWORD,
yHotspot: DWORD,
hbmMask: HBITMAP,
hbmColor: HBITMAP,
wResID: WORD,
szModName: [260]CHAR,
szResName: [260]CHAR,
};
pub const ICONINFOEXA = struct__ICONINFOEXA;
pub const PICONINFOEXA = ?&struct__ICONINFOEXA;
pub const struct__ICONINFOEXW = extern struct {
cbSize: DWORD,
fIcon: BOOL,
xHotspot: DWORD,
yHotspot: DWORD,
hbmMask: HBITMAP,
hbmColor: HBITMAP,
wResID: WORD,
szModName: [260]WCHAR,
szResName: [260]WCHAR,
};
pub const ICONINFOEXW = struct__ICONINFOEXW;
pub const PICONINFOEXW = ?&struct__ICONINFOEXW;
pub const ICONINFOEX = ICONINFOEXA;
pub const PICONINFOEX = PICONINFOEXA;
pub extern fn GetIconInfoExA(hicon: HICON, piconinfo: PICONINFOEXA) -> BOOL;
pub extern fn GetIconInfoExW(hicon: HICON, piconinfo: PICONINFOEXW) -> BOOL;
pub extern fn IsDialogMessageA(hDlg: HWND, lpMsg: LPMSG) -> BOOL;
pub extern fn IsDialogMessageW(hDlg: HWND, lpMsg: LPMSG) -> BOOL;
pub extern fn MapDialogRect(hDlg: HWND, lpRect: LPRECT) -> BOOL;
pub extern fn DlgDirListA(hDlg: HWND, lpPathSpec: LPSTR, nIDListBox: c_int, nIDStaticPath: c_int, uFileType: UINT) -> c_int;
pub extern fn DlgDirListW(hDlg: HWND, lpPathSpec: LPWSTR, nIDListBox: c_int, nIDStaticPath: c_int, uFileType: UINT) -> c_int;
pub extern fn DlgDirSelectExA(hwndDlg: HWND, lpString: LPSTR, chCount: c_int, idListBox: c_int) -> BOOL;
pub extern fn DlgDirSelectExW(hwndDlg: HWND, lpString: LPWSTR, chCount: c_int, idListBox: c_int) -> BOOL;
pub extern fn DlgDirListComboBoxA(hDlg: HWND, lpPathSpec: LPSTR, nIDComboBox: c_int, nIDStaticPath: c_int, uFiletype: UINT) -> c_int;
pub extern fn DlgDirListComboBoxW(hDlg: HWND, lpPathSpec: LPWSTR, nIDComboBox: c_int, nIDStaticPath: c_int, uFiletype: UINT) -> c_int;
pub extern fn DlgDirSelectComboBoxExA(hwndDlg: HWND, lpString: LPSTR, cchOut: c_int, idComboBox: c_int) -> BOOL;
pub extern fn DlgDirSelectComboBoxExW(hwndDlg: HWND, lpString: LPWSTR, cchOut: c_int, idComboBox: c_int) -> BOOL;
pub const struct_tagSCROLLINFO = extern struct {
cbSize: UINT,
fMask: UINT,
nMin: c_int,
nMax: c_int,
nPage: UINT,
nPos: c_int,
nTrackPos: c_int,
};
pub const SCROLLINFO = struct_tagSCROLLINFO;
pub const LPSCROLLINFO = ?&struct_tagSCROLLINFO;
pub const LPCSCROLLINFO = ?&const SCROLLINFO;
pub extern fn SetScrollInfo(hwnd: HWND, nBar: c_int, lpsi: LPCSCROLLINFO, redraw: BOOL) -> c_int;
pub extern fn GetScrollInfo(hwnd: HWND, nBar: c_int, lpsi: LPSCROLLINFO) -> BOOL;
pub const struct_tagMDICREATESTRUCTA = extern struct {
szClass: LPCSTR,
szTitle: LPCSTR,
hOwner: HANDLE,
x: c_int,
y: c_int,
cx: c_int,
cy: c_int,
style: DWORD,
lParam: LPARAM,
};
pub const MDICREATESTRUCTA = struct_tagMDICREATESTRUCTA;
pub const LPMDICREATESTRUCTA = ?&struct_tagMDICREATESTRUCTA;
pub const struct_tagMDICREATESTRUCTW = extern struct {
szClass: LPCWSTR,
szTitle: LPCWSTR,
hOwner: HANDLE,
x: c_int,
y: c_int,
cx: c_int,
cy: c_int,
style: DWORD,
lParam: LPARAM,
};
pub const MDICREATESTRUCTW = struct_tagMDICREATESTRUCTW;
pub const LPMDICREATESTRUCTW = ?&struct_tagMDICREATESTRUCTW;
pub const MDICREATESTRUCT = MDICREATESTRUCTA;
pub const LPMDICREATESTRUCT = LPMDICREATESTRUCTA;
pub const struct_tagCLIENTCREATESTRUCT = extern struct {
hWindowMenu: HANDLE,
idFirstChild: UINT,
};
pub const CLIENTCREATESTRUCT = struct_tagCLIENTCREATESTRUCT;
pub const LPCLIENTCREATESTRUCT = ?&struct_tagCLIENTCREATESTRUCT;
pub extern fn DefFrameProcA(hWnd: HWND, hWndMDIClient: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn DefFrameProcW(hWnd: HWND, hWndMDIClient: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn DefMDIChildProcA(hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn DefMDIChildProcW(hWnd: HWND, uMsg: UINT, wParam: WPARAM, lParam: LPARAM) -> LRESULT;
pub extern fn TranslateMDISysAccel(hWndClient: HWND, lpMsg: LPMSG) -> BOOL;
pub extern fn ArrangeIconicWindows(hWnd: HWND) -> UINT;
pub extern fn CreateMDIWindowA(lpClassName: LPCSTR, lpWindowName: LPCSTR, dwStyle: DWORD, X: c_int, Y: c_int, nWidth: c_int, nHeight: c_int, hWndParent: HWND, hInstance: HINSTANCE, lParam: LPARAM) -> HWND;
pub extern fn CreateMDIWindowW(lpClassName: LPCWSTR, lpWindowName: LPCWSTR, dwStyle: DWORD, X: c_int, Y: c_int, nWidth: c_int, nHeight: c_int, hWndParent: HWND, hInstance: HINSTANCE, lParam: LPARAM) -> HWND;
pub extern fn TileWindows(hwndParent: HWND, wHow: UINT, lpRect: ?&const RECT, cKids: UINT, lpKids: ?&const HWND) -> WORD;
pub extern fn CascadeWindows(hwndParent: HWND, wHow: UINT, lpRect: ?&const RECT, cKids: UINT, lpKids: ?&const HWND) -> WORD;
pub const HELPPOLY = DWORD;
pub const struct_tagMULTIKEYHELPA = extern struct {
mkSize: DWORD,
mkKeylist: CHAR,
szKeyphrase: [1]CHAR,
};
pub const MULTIKEYHELPA = struct_tagMULTIKEYHELPA;
pub const PMULTIKEYHELPA = ?&struct_tagMULTIKEYHELPA;
pub const LPMULTIKEYHELPA = ?&struct_tagMULTIKEYHELPA;
pub const struct_tagMULTIKEYHELPW = extern struct {
mkSize: DWORD,
mkKeylist: WCHAR,
szKeyphrase: [1]WCHAR,
};
pub const MULTIKEYHELPW = struct_tagMULTIKEYHELPW;
pub const PMULTIKEYHELPW = ?&struct_tagMULTIKEYHELPW;
pub const LPMULTIKEYHELPW = ?&struct_tagMULTIKEYHELPW;
pub const MULTIKEYHELP = MULTIKEYHELPA;
pub const PMULTIKEYHELP = PMULTIKEYHELPA;
pub const LPMULTIKEYHELP = LPMULTIKEYHELPA;
pub const struct_tagHELPWININFOA = extern struct {
wStructSize: c_int,
x: c_int,
y: c_int,
dx: c_int,
dy: c_int,
wMax: c_int,
rgchMember: [2]CHAR,
};
pub const HELPWININFOA = struct_tagHELPWININFOA;
pub const PHELPWININFOA = ?&struct_tagHELPWININFOA;
pub const LPHELPWININFOA = ?&struct_tagHELPWININFOA;
pub const struct_tagHELPWININFOW = extern struct {
wStructSize: c_int,
x: c_int,
y: c_int,
dx: c_int,
dy: c_int,
wMax: c_int,
rgchMember: [2]WCHAR,
};
pub const HELPWININFOW = struct_tagHELPWININFOW;
pub const PHELPWININFOW = ?&struct_tagHELPWININFOW;
pub const LPHELPWININFOW = ?&struct_tagHELPWININFOW;
pub const HELPWININFO = HELPWININFOA;
pub const PHELPWININFO = PHELPWININFOA;
pub const LPHELPWININFO = LPHELPWININFOA;
pub extern fn WinHelpA(hWndMain: HWND, lpszHelp: LPCSTR, uCommand: UINT, dwData: ULONG_PTR) -> BOOL;
pub extern fn WinHelpW(hWndMain: HWND, lpszHelp: LPCWSTR, uCommand: UINT, dwData: ULONG_PTR) -> BOOL;
pub extern fn GetGuiResources(hProcess: HANDLE, uiFlags: DWORD) -> DWORD;
pub const struct_tagTouchPredictionParameters = extern struct {
cbSize: UINT,
dwLatency: UINT,
dwSampleTime: UINT,
bUseHWTimeStamp: UINT,
};
pub const TOUCHPREDICTIONPARAMETERS = struct_tagTouchPredictionParameters;
pub const PTOUCHPREDICTIONPARAMETERS = ?&struct_tagTouchPredictionParameters;
pub const struct_tagNONCLIENTMETRICSA = extern struct {
cbSize: UINT,
iBorderWidth: c_int,
iScrollWidth: c_int,
iScrollHeight: c_int,
iCaptionWidth: c_int,
iCaptionHeight: c_int,
lfCaptionFont: LOGFONTA,
iSmCaptionWidth: c_int,
iSmCaptionHeight: c_int,
lfSmCaptionFont: LOGFONTA,
iMenuWidth: c_int,
iMenuHeight: c_int,
lfMenuFont: LOGFONTA,
lfStatusFont: LOGFONTA,
lfMessageFont: LOGFONTA,
iPaddedBorderWidth: c_int,
};
pub const NONCLIENTMETRICSA = struct_tagNONCLIENTMETRICSA;
pub const PNONCLIENTMETRICSA = ?&struct_tagNONCLIENTMETRICSA;
pub const LPNONCLIENTMETRICSA = ?&struct_tagNONCLIENTMETRICSA;
pub const struct_tagNONCLIENTMETRICSW = extern struct {
cbSize: UINT,
iBorderWidth: c_int,
iScrollWidth: c_int,
iScrollHeight: c_int,
iCaptionWidth: c_int,
iCaptionHeight: c_int,
lfCaptionFont: LOGFONTW,
iSmCaptionWidth: c_int,
iSmCaptionHeight: c_int,
lfSmCaptionFont: LOGFONTW,
iMenuWidth: c_int,
iMenuHeight: c_int,
lfMenuFont: LOGFONTW,
lfStatusFont: LOGFONTW,
lfMessageFont: LOGFONTW,
iPaddedBorderWidth: c_int,
};
pub const NONCLIENTMETRICSW = struct_tagNONCLIENTMETRICSW;
pub const PNONCLIENTMETRICSW = ?&struct_tagNONCLIENTMETRICSW;
pub const LPNONCLIENTMETRICSW = ?&struct_tagNONCLIENTMETRICSW;
pub const NONCLIENTMETRICS = NONCLIENTMETRICSA;
pub const PNONCLIENTMETRICS = PNONCLIENTMETRICSA;
pub const LPNONCLIENTMETRICS = LPNONCLIENTMETRICSA;
pub const struct_tagMINIMIZEDMETRICS = extern struct {
cbSize: UINT,
iWidth: c_int,
iHorzGap: c_int,
iVertGap: c_int,
iArrange: c_int,
};
pub const MINIMIZEDMETRICS = struct_tagMINIMIZEDMETRICS;
pub const PMINIMIZEDMETRICS = ?&struct_tagMINIMIZEDMETRICS;
pub const LPMINIMIZEDMETRICS = ?&struct_tagMINIMIZEDMETRICS;
pub const struct_tagICONMETRICSA = extern struct {
cbSize: UINT,
iHorzSpacing: c_int,
iVertSpacing: c_int,
iTitleWrap: c_int,
lfFont: LOGFONTA,
};
pub const ICONMETRICSA = struct_tagICONMETRICSA;
pub const PICONMETRICSA = ?&struct_tagICONMETRICSA;
pub const LPICONMETRICSA = ?&struct_tagICONMETRICSA;
pub const struct_tagICONMETRICSW = extern struct {
cbSize: UINT,
iHorzSpacing: c_int,
iVertSpacing: c_int,
iTitleWrap: c_int,
lfFont: LOGFONTW,
};
pub const ICONMETRICSW = struct_tagICONMETRICSW;
pub const PICONMETRICSW = ?&struct_tagICONMETRICSW;
pub const LPICONMETRICSW = ?&struct_tagICONMETRICSW;
pub const ICONMETRICS = ICONMETRICSA;
pub const PICONMETRICS = PICONMETRICSA;
pub const LPICONMETRICS = LPICONMETRICSA;
pub const struct_tagANIMATIONINFO = extern struct {
cbSize: UINT,
iMinAnimate: c_int,
};
pub const ANIMATIONINFO = struct_tagANIMATIONINFO;
pub const LPANIMATIONINFO = ?&struct_tagANIMATIONINFO;
pub const struct_tagSERIALKEYSA = extern struct {
cbSize: UINT,
dwFlags: DWORD,
lpszActivePort: LPSTR,
lpszPort: LPSTR,
iBaudRate: UINT,
iPortState: UINT,
iActive: UINT,
};
pub const SERIALKEYSA = struct_tagSERIALKEYSA;
pub const LPSERIALKEYSA = ?&struct_tagSERIALKEYSA;
pub const struct_tagSERIALKEYSW = extern struct {
cbSize: UINT,
dwFlags: DWORD,
lpszActivePort: LPWSTR,
lpszPort: LPWSTR,
iBaudRate: UINT,
iPortState: UINT,
iActive: UINT,
};
pub const SERIALKEYSW = struct_tagSERIALKEYSW;
pub const LPSERIALKEYSW = ?&struct_tagSERIALKEYSW;
pub const SERIALKEYS = SERIALKEYSA;
pub const LPSERIALKEYS = LPSERIALKEYSA;
pub const struct_tagHIGHCONTRASTA = extern struct {
cbSize: UINT,
dwFlags: DWORD,
lpszDefaultScheme: LPSTR,
};
pub const HIGHCONTRASTA = struct_tagHIGHCONTRASTA;
pub const LPHIGHCONTRASTA = ?&struct_tagHIGHCONTRASTA;
pub const struct_tagHIGHCONTRASTW = extern struct {
cbSize: UINT,
dwFlags: DWORD,
lpszDefaultScheme: LPWSTR,
};
pub const HIGHCONTRASTW = struct_tagHIGHCONTRASTW;
pub const LPHIGHCONTRASTW = ?&struct_tagHIGHCONTRASTW;
pub const HIGHCONTRAST = HIGHCONTRASTA;
pub const LPHIGHCONTRAST = LPHIGHCONTRASTA;
pub const struct__VIDEOPARAMETERS = extern struct {
Guid: GUID,
dwOffset: ULONG,
dwCommand: ULONG,
dwFlags: ULONG,
dwMode: ULONG,
dwTVStandard: ULONG,
dwAvailableModes: ULONG,
dwAvailableTVStandard: ULONG,
dwFlickerFilter: ULONG,
dwOverScanX: ULONG,
dwOverScanY: ULONG,
dwMaxUnscaledX: ULONG,
dwMaxUnscaledY: ULONG,
dwPositionX: ULONG,
dwPositionY: ULONG,
dwBrightness: ULONG,
dwContrast: ULONG,
dwCPType: ULONG,
dwCPCommand: ULONG,
dwCPStandard: ULONG,
dwCPKey: ULONG,
bCP_APSTriggerBits: ULONG,
bOEMCopyProtection: [256]UCHAR,
};
pub const VIDEOPARAMETERS = struct__VIDEOPARAMETERS;
pub const PVIDEOPARAMETERS = ?&struct__VIDEOPARAMETERS;
pub const LPVIDEOPARAMETERS = ?&struct__VIDEOPARAMETERS;
pub extern fn ChangeDisplaySettingsA(lpDevMode: ?&DEVMODEA, dwFlags: DWORD) -> LONG;
pub extern fn ChangeDisplaySettingsW(lpDevMode: ?&DEVMODEW, dwFlags: DWORD) -> LONG;
pub extern fn ChangeDisplaySettingsExA(lpszDeviceName: LPCSTR, lpDevMode: ?&DEVMODEA, hwnd: HWND, dwflags: DWORD, lParam: LPVOID) -> LONG;
pub extern fn ChangeDisplaySettingsExW(lpszDeviceName: LPCWSTR, lpDevMode: ?&DEVMODEW, hwnd: HWND, dwflags: DWORD, lParam: LPVOID) -> LONG;
pub extern fn EnumDisplaySettingsA(lpszDeviceName: LPCSTR, iModeNum: DWORD, lpDevMode: ?&DEVMODEA) -> BOOL;
pub extern fn EnumDisplaySettingsW(lpszDeviceName: LPCWSTR, iModeNum: DWORD, lpDevMode: ?&DEVMODEW) -> BOOL;
pub extern fn EnumDisplaySettingsExA(lpszDeviceName: LPCSTR, iModeNum: DWORD, lpDevMode: ?&DEVMODEA, dwFlags: DWORD) -> BOOL;
pub extern fn EnumDisplaySettingsExW(lpszDeviceName: LPCWSTR, iModeNum: DWORD, lpDevMode: ?&DEVMODEW, dwFlags: DWORD) -> BOOL;
pub extern fn EnumDisplayDevicesA(lpDevice: LPCSTR, iDevNum: DWORD, lpDisplayDevice: PDISPLAY_DEVICEA, dwFlags: DWORD) -> BOOL;
pub extern fn EnumDisplayDevicesW(lpDevice: LPCWSTR, iDevNum: DWORD, lpDisplayDevice: PDISPLAY_DEVICEW, dwFlags: DWORD) -> BOOL;
pub extern fn GetDisplayConfigBufferSizes(flags: UINT32, numPathArrayElements: ?&UINT32, numModeInfoArrayElements: ?&UINT32) -> LONG;
pub extern fn SetDisplayConfig(numPathArrayElements: UINT32, pathArray: ?&DISPLAYCONFIG_PATH_INFO, numModeInfoArrayElements: UINT32, modeInfoArray: ?&DISPLAYCONFIG_MODE_INFO, flags: UINT32) -> LONG;
pub extern fn QueryDisplayConfig(flags: UINT32, numPathArrayElements: ?&UINT32, pathArray: ?&DISPLAYCONFIG_PATH_INFO, numModeInfoArrayElements: ?&UINT32, modeInfoArray: ?&DISPLAYCONFIG_MODE_INFO, currentTopologyId: ?&DISPLAYCONFIG_TOPOLOGY_ID) -> LONG;
pub extern fn DisplayConfigGetDeviceInfo(requestPacket: ?&DISPLAYCONFIG_DEVICE_INFO_HEADER) -> LONG;
pub extern fn DisplayConfigSetDeviceInfo(setPacket: ?&DISPLAYCONFIG_DEVICE_INFO_HEADER) -> LONG;
pub extern fn SystemParametersInfoA(uiAction: UINT, uiParam: UINT, pvParam: PVOID, fWinIni: UINT) -> BOOL;
pub extern fn SystemParametersInfoW(uiAction: UINT, uiParam: UINT, pvParam: PVOID, fWinIni: UINT) -> BOOL;
pub const struct_tagFILTERKEYS = extern struct {
cbSize: UINT,
dwFlags: DWORD,
iWaitMSec: DWORD,
iDelayMSec: DWORD,
iRepeatMSec: DWORD,
iBounceMSec: DWORD,
};
pub const FILTERKEYS = struct_tagFILTERKEYS;
pub const LPFILTERKEYS = ?&struct_tagFILTERKEYS;
pub const struct_tagSTICKYKEYS = extern struct {
cbSize: UINT,
dwFlags: DWORD,
};
pub const STICKYKEYS = struct_tagSTICKYKEYS;
pub const LPSTICKYKEYS = ?&struct_tagSTICKYKEYS;
pub const struct_tagMOUSEKEYS = extern struct {
cbSize: UINT,
dwFlags: DWORD,
iMaxSpeed: DWORD,
iTimeToMaxSpeed: DWORD,
iCtrlSpeed: DWORD,
dwReserved1: DWORD,
dwReserved2: DWORD,
};
pub const MOUSEKEYS = struct_tagMOUSEKEYS;
pub const LPMOUSEKEYS = ?&struct_tagMOUSEKEYS;
pub const struct_tagACCESSTIMEOUT = extern struct {
cbSize: UINT,
dwFlags: DWORD,
iTimeOutMSec: DWORD,
};
pub const ACCESSTIMEOUT = struct_tagACCESSTIMEOUT;
pub const LPACCESSTIMEOUT = ?&struct_tagACCESSTIMEOUT;
pub const struct_tagSOUNDSENTRYA = extern struct {
cbSize: UINT,
dwFlags: DWORD,
iFSTextEffect: DWORD,
iFSTextEffectMSec: DWORD,
iFSTextEffectColorBits: DWORD,
iFSGrafEffect: DWORD,
iFSGrafEffectMSec: DWORD,
iFSGrafEffectColor: DWORD,
iWindowsEffect: DWORD,
iWindowsEffectMSec: DWORD,
lpszWindowsEffectDLL: LPSTR,
iWindowsEffectOrdinal: DWORD,
};
pub const SOUNDSENTRYA = struct_tagSOUNDSENTRYA;
pub const LPSOUNDSENTRYA = ?&struct_tagSOUNDSENTRYA;
pub const struct_tagSOUNDSENTRYW = extern struct {
cbSize: UINT,
dwFlags: DWORD,
iFSTextEffect: DWORD,
iFSTextEffectMSec: DWORD,
iFSTextEffectColorBits: DWORD,
iFSGrafEffect: DWORD,
iFSGrafEffectMSec: DWORD,
iFSGrafEffectColor: DWORD,
iWindowsEffect: DWORD,
iWindowsEffectMSec: DWORD,
lpszWindowsEffectDLL: LPWSTR,
iWindowsEffectOrdinal: DWORD,
};
pub const SOUNDSENTRYW = struct_tagSOUNDSENTRYW;
pub const LPSOUNDSENTRYW = ?&struct_tagSOUNDSENTRYW;
pub const SOUNDSENTRY = SOUNDSENTRYA;
pub const LPSOUNDSENTRY = LPSOUNDSENTRYA;
pub extern fn SoundSentry() -> BOOL;
pub const struct_tagTOGGLEKEYS = extern struct {
cbSize: UINT,
dwFlags: DWORD,
};
pub const TOGGLEKEYS = struct_tagTOGGLEKEYS;
pub const LPTOGGLEKEYS = ?&struct_tagTOGGLEKEYS;
pub const struct_tagAUDIODESCRIPTION = extern struct {
cbSize: UINT,
Enabled: BOOL,
Locale: LCID,
};
pub const AUDIODESCRIPTION = struct_tagAUDIODESCRIPTION;
pub const LPAUDIODESCRIPTION = ?&struct_tagAUDIODESCRIPTION;
pub extern fn SetDebugErrorLevel(dwLevel: DWORD);
pub extern fn SetLastErrorEx(dwErrCode: DWORD, dwType: DWORD);
pub extern fn InternalGetWindowText(hWnd: HWND, pString: LPWSTR, cchMaxCount: c_int) -> c_int;
pub extern fn CancelShutdown() -> BOOL;
pub extern fn MonitorFromPoint(pt: POINT, dwFlags: DWORD) -> HMONITOR;
pub extern fn MonitorFromRect(lprc: LPCRECT, dwFlags: DWORD) -> HMONITOR;
pub extern fn MonitorFromWindow(hwnd: HWND, dwFlags: DWORD) -> HMONITOR;
pub const struct_tagMONITORINFO = extern struct {
cbSize: DWORD,
rcMonitor: RECT,
rcWork: RECT,
dwFlags: DWORD,
};
pub const MONITORINFO = struct_tagMONITORINFO;
pub const LPMONITORINFO = ?&struct_tagMONITORINFO;
pub const struct_tagMONITORINFOEXA = extern struct {
@"": struct_tagMONITORINFO,
szDevice: [32]CHAR,
};
pub const MONITORINFOEXA = struct_tagMONITORINFOEXA;
pub const LPMONITORINFOEXA = ?&struct_tagMONITORINFOEXA;
pub const struct_tagMONITORINFOEXW = extern struct {
@"": struct_tagMONITORINFO,
szDevice: [32]WCHAR,
};
pub const MONITORINFOEXW = struct_tagMONITORINFOEXW;
pub const LPMONITORINFOEXW = ?&struct_tagMONITORINFOEXW;
pub const MONITORINFOEX = MONITORINFOEXA;
pub const LPMONITORINFOEX = LPMONITORINFOEXA;
pub extern fn GetMonitorInfoA(hMonitor: HMONITOR, lpmi: LPMONITORINFO) -> BOOL;
pub extern fn GetMonitorInfoW(hMonitor: HMONITOR, lpmi: LPMONITORINFO) -> BOOL;
pub const MONITORENUMPROC = ?extern fn(HMONITOR, HDC, LPRECT, LPARAM) -> BOOL;
pub extern fn EnumDisplayMonitors(hdc: HDC, lprcClip: LPCRECT, lpfnEnum: MONITORENUMPROC, dwData: LPARAM) -> BOOL;
pub extern fn NotifyWinEvent(event: DWORD, hwnd: HWND, idObject: LONG, idChild: LONG);
pub const WINEVENTPROC = ?extern fn(HWINEVENTHOOK, DWORD, HWND, LONG, LONG, DWORD, DWORD);
pub extern fn SetWinEventHook(eventMin: DWORD, eventMax: DWORD, hmodWinEventProc: HMODULE, pfnWinEventProc: WINEVENTPROC, idProcess: DWORD, idThread: DWORD, dwFlags: DWORD) -> HWINEVENTHOOK;
pub extern fn IsWinEventHookInstalled(event: DWORD) -> BOOL;
pub extern fn UnhookWinEvent(hWinEventHook: HWINEVENTHOOK) -> BOOL;
pub const struct_tagGUITHREADINFO = extern struct {
cbSize: DWORD,
flags: DWORD,
hwndActive: HWND,
hwndFocus: HWND,
hwndCapture: HWND,
hwndMenuOwner: HWND,
hwndMoveSize: HWND,
hwndCaret: HWND,
rcCaret: RECT,
};
pub const GUITHREADINFO = struct_tagGUITHREADINFO;
pub const PGUITHREADINFO = ?&struct_tagGUITHREADINFO;
pub const LPGUITHREADINFO = ?&struct_tagGUITHREADINFO;
pub extern fn GetGUIThreadInfo(idThread: DWORD, pgui: PGUITHREADINFO) -> BOOL;
pub extern fn BlockInput(fBlockIt: BOOL) -> BOOL;
pub extern fn SetProcessDPIAware() -> BOOL;
pub extern fn IsProcessDPIAware() -> BOOL;
pub extern fn GetWindowModuleFileNameA(hwnd: HWND, pszFileName: LPSTR, cchFileNameMax: UINT) -> UINT;
pub extern fn GetWindowModuleFileNameW(hwnd: HWND, pszFileName: LPWSTR, cchFileNameMax: UINT) -> UINT;
pub const struct_tagCURSORINFO = extern struct {
cbSize: DWORD,
flags: DWORD,
hCursor: HCURSOR,
ptScreenPos: POINT,
};
pub const CURSORINFO = struct_tagCURSORINFO;
pub const PCURSORINFO = ?&struct_tagCURSORINFO;
pub const LPCURSORINFO = ?&struct_tagCURSORINFO;
pub extern fn GetCursorInfo(pci: PCURSORINFO) -> BOOL;
pub const struct_tagWINDOWINFO = extern struct {
cbSize: DWORD,
rcWindow: RECT,
rcClient: RECT,
dwStyle: DWORD,
dwExStyle: DWORD,
dwWindowStatus: DWORD,
cxWindowBorders: UINT,
cyWindowBorders: UINT,
atomWindowType: ATOM,
wCreatorVersion: WORD,
};
pub const WINDOWINFO = struct_tagWINDOWINFO;
pub const PWINDOWINFO = ?&struct_tagWINDOWINFO;
pub const LPWINDOWINFO = ?&struct_tagWINDOWINFO;
pub extern fn GetWindowInfo(hwnd: HWND, pwi: PWINDOWINFO) -> BOOL;
pub const struct_tagTITLEBARINFO = extern struct {
cbSize: DWORD,
rcTitleBar: RECT,
rgstate: [6]DWORD,
};
pub const TITLEBARINFO = struct_tagTITLEBARINFO;
pub const PTITLEBARINFO = ?&struct_tagTITLEBARINFO;
pub const LPTITLEBARINFO = ?&struct_tagTITLEBARINFO;
pub extern fn GetTitleBarInfo(hwnd: HWND, pti: PTITLEBARINFO) -> BOOL;
pub const struct_tagTITLEBARINFOEX = extern struct {
cbSize: DWORD,
rcTitleBar: RECT,
rgstate: [6]DWORD,
rgrect: [6]RECT,
};
pub const TITLEBARINFOEX = struct_tagTITLEBARINFOEX;
pub const PTITLEBARINFOEX = ?&struct_tagTITLEBARINFOEX;
pub const LPTITLEBARINFOEX = ?&struct_tagTITLEBARINFOEX;
pub const struct_tagMENUBARINFO = @OpaqueType();
pub const MENUBARINFO = struct_tagMENUBARINFO;
pub const PMENUBARINFO = ?&struct_tagMENUBARINFO;
pub const LPMENUBARINFO = ?&struct_tagMENUBARINFO;
pub extern fn GetMenuBarInfo(hwnd: HWND, idObject: LONG, idItem: LONG, pmbi: PMENUBARINFO) -> BOOL;
pub const struct_tagSCROLLBARINFO = extern struct {
cbSize: DWORD,
rcScrollBar: RECT,
dxyLineButton: c_int,
xyThumbTop: c_int,
xyThumbBottom: c_int,
reserved: c_int,
rgstate: [6]DWORD,
};
pub const SCROLLBARINFO = struct_tagSCROLLBARINFO;
pub const PSCROLLBARINFO = ?&struct_tagSCROLLBARINFO;
pub const LPSCROLLBARINFO = ?&struct_tagSCROLLBARINFO;
pub extern fn GetScrollBarInfo(hwnd: HWND, idObject: LONG, psbi: PSCROLLBARINFO) -> BOOL;
pub const struct_tagCOMBOBOXINFO = extern struct {
cbSize: DWORD,
rcItem: RECT,
rcButton: RECT,
stateButton: DWORD,
hwndCombo: HWND,
hwndItem: HWND,
hwndList: HWND,
};
pub const COMBOBOXINFO = struct_tagCOMBOBOXINFO;
pub const PCOMBOBOXINFO = ?&struct_tagCOMBOBOXINFO;
pub const LPCOMBOBOXINFO = ?&struct_tagCOMBOBOXINFO;
pub extern fn GetComboBoxInfo(hwndCombo: HWND, pcbi: PCOMBOBOXINFO) -> BOOL;
pub extern fn GetAncestor(hwnd: HWND, gaFlags: UINT) -> HWND;
pub extern fn RealChildWindowFromPoint(hwndParent: HWND, ptParentClientCoords: POINT) -> HWND;
pub extern fn RealGetWindowClassA(hwnd: HWND, ptszClassName: LPSTR, cchClassNameMax: UINT) -> UINT;
pub extern fn RealGetWindowClassW(hwnd: HWND, ptszClassName: LPWSTR, cchClassNameMax: UINT) -> UINT;
pub const struct_tagALTTABINFO = extern struct {
cbSize: DWORD,
cItems: c_int,
cColumns: c_int,
cRows: c_int,
iColFocus: c_int,
iRowFocus: c_int,
cxItem: c_int,
cyItem: c_int,
ptStart: POINT,
};
pub const ALTTABINFO = struct_tagALTTABINFO;
pub const PALTTABINFO = ?&struct_tagALTTABINFO;
pub const LPALTTABINFO = ?&struct_tagALTTABINFO;
pub extern fn GetAltTabInfoA(hwnd: HWND, iItem: c_int, pati: PALTTABINFO, pszItemText: LPSTR, cchItemText: UINT) -> BOOL;
pub extern fn GetAltTabInfoW(hwnd: HWND, iItem: c_int, pati: PALTTABINFO, pszItemText: LPWSTR, cchItemText: UINT) -> BOOL;
pub extern fn GetListBoxInfo(hwnd: HWND) -> DWORD;
pub extern fn LockWorkStation() -> BOOL;
pub extern fn UserHandleGrantAccess(hUserHandle: HANDLE, hJob: HANDLE, bGrant: BOOL) -> BOOL;
pub const struct_HRAWINPUT__ = extern struct {
unused: c_int,
};
pub const HRAWINPUT = ?&struct_HRAWINPUT__;
pub const struct_tagRAWINPUTHEADER = extern struct {
dwType: DWORD,
dwSize: DWORD,
hDevice: HANDLE,
wParam: WPARAM,
};
pub const RAWINPUTHEADER = struct_tagRAWINPUTHEADER;
pub const PRAWINPUTHEADER = ?&struct_tagRAWINPUTHEADER;
pub const LPRAWINPUTHEADER = ?&struct_tagRAWINPUTHEADER;
pub const struct_tagRAWMOUSE = @OpaqueType();
pub const RAWMOUSE = struct_tagRAWMOUSE;
pub const PRAWMOUSE = ?&struct_tagRAWMOUSE;
pub const LPRAWMOUSE = ?&struct_tagRAWMOUSE;
pub const struct_tagRAWKEYBOARD = extern struct {
MakeCode: USHORT,
Flags: USHORT,
Reserved: USHORT,
VKey: USHORT,
Message: UINT,
ExtraInformation: ULONG,
};
pub const RAWKEYBOARD = struct_tagRAWKEYBOARD;
pub const PRAWKEYBOARD = ?&struct_tagRAWKEYBOARD;
pub const LPRAWKEYBOARD = ?&struct_tagRAWKEYBOARD;
pub const struct_tagRAWHID = extern struct {
dwSizeHid: DWORD,
dwCount: DWORD,
bRawData: [1]BYTE,
};
pub const RAWHID = struct_tagRAWHID;
pub const PRAWHID = ?&struct_tagRAWHID;
pub const LPRAWHID = ?&struct_tagRAWHID;
pub const struct_tagRAWINPUT = @OpaqueType();
pub const RAWINPUT = struct_tagRAWINPUT;
pub const PRAWINPUT = ?&struct_tagRAWINPUT;
pub const LPRAWINPUT = ?&struct_tagRAWINPUT;
pub extern fn GetRawInputData(hRawInput: HRAWINPUT, uiCommand: UINT, pData: LPVOID, pcbSize: PUINT, cbSizeHeader: UINT) -> UINT;
pub const struct_tagRID_DEVICE_INFO_MOUSE = extern struct {
dwId: DWORD,
dwNumberOfButtons: DWORD,
dwSampleRate: DWORD,
fHasHorizontalWheel: BOOL,
};
pub const RID_DEVICE_INFO_MOUSE = struct_tagRID_DEVICE_INFO_MOUSE;
pub const PRID_DEVICE_INFO_MOUSE = ?&struct_tagRID_DEVICE_INFO_MOUSE;
pub const struct_tagRID_DEVICE_INFO_KEYBOARD = extern struct {
dwType: DWORD,
dwSubType: DWORD,
dwKeyboardMode: DWORD,
dwNumberOfFunctionKeys: DWORD,
dwNumberOfIndicators: DWORD,
dwNumberOfKeysTotal: DWORD,
};
pub const RID_DEVICE_INFO_KEYBOARD = struct_tagRID_DEVICE_INFO_KEYBOARD;
pub const PRID_DEVICE_INFO_KEYBOARD = ?&struct_tagRID_DEVICE_INFO_KEYBOARD;
pub const struct_tagRID_DEVICE_INFO_HID = extern struct {
dwVendorId: DWORD,
dwProductId: DWORD,
dwVersionNumber: DWORD,
usUsagePage: USHORT,
usUsage: USHORT,
};
pub const RID_DEVICE_INFO_HID = struct_tagRID_DEVICE_INFO_HID;
pub const PRID_DEVICE_INFO_HID = ?&struct_tagRID_DEVICE_INFO_HID;
pub const struct_tagRID_DEVICE_INFO = @OpaqueType();
pub const RID_DEVICE_INFO = struct_tagRID_DEVICE_INFO;
pub const PRID_DEVICE_INFO = ?&struct_tagRID_DEVICE_INFO;
pub const LPRID_DEVICE_INFO = ?&struct_tagRID_DEVICE_INFO;
pub extern fn GetRawInputDeviceInfoA(hDevice: HANDLE, uiCommand: UINT, pData: LPVOID, pcbSize: PUINT) -> UINT;
pub extern fn GetRawInputDeviceInfoW(hDevice: HANDLE, uiCommand: UINT, pData: LPVOID, pcbSize: PUINT) -> UINT;
pub extern fn GetRawInputBuffer(pData: PRAWINPUT, pcbSize: PUINT, cbSizeHeader: UINT) -> UINT;
pub const struct_tagRAWINPUTDEVICE = extern struct {
usUsagePage: USHORT,
usUsage: USHORT,
dwFlags: DWORD,
hwndTarget: HWND,
};
pub const RAWINPUTDEVICE = struct_tagRAWINPUTDEVICE;
pub const PRAWINPUTDEVICE = ?&struct_tagRAWINPUTDEVICE;
pub const LPRAWINPUTDEVICE = ?&struct_tagRAWINPUTDEVICE;
pub const PCRAWINPUTDEVICE = ?&const RAWINPUTDEVICE;
pub extern fn RegisterRawInputDevices(pRawInputDevices: PCRAWINPUTDEVICE, uiNumDevices: UINT, cbSize: UINT) -> BOOL;
pub extern fn GetRegisteredRawInputDevices(pRawInputDevices: PRAWINPUTDEVICE, puiNumDevices: PUINT, cbSize: UINT) -> UINT;
pub const struct_tagRAWINPUTDEVICELIST = extern struct {
hDevice: HANDLE,
dwType: DWORD,
};
pub const RAWINPUTDEVICELIST = struct_tagRAWINPUTDEVICELIST;
pub const PRAWINPUTDEVICELIST = ?&struct_tagRAWINPUTDEVICELIST;
pub extern fn GetRawInputDeviceList(pRawInputDeviceList: PRAWINPUTDEVICELIST, puiNumDevices: PUINT, cbSize: UINT) -> UINT;
pub extern fn DefRawInputProc(paRawInput: ?&PRAWINPUT, nInput: INT, cbSizeHeader: UINT) -> LRESULT;
pub const POINTER_DEVICE_TYPE_INTEGRATED_PEN: c_int = 1;
pub const POINTER_DEVICE_TYPE_EXTERNAL_PEN: c_int = 2;
pub const POINTER_DEVICE_TYPE_TOUCH: c_int = 3;
pub const POINTER_DEVICE_TYPE_TOUCH_PAD: c_int = 4;
pub const POINTER_DEVICE_TYPE_MAX: c_int = -4294967295;
pub const enum_tagPOINTER_DEVICE_TYPE = c_int;
pub const POINTER_DEVICE_TYPE_INTEGRATED_PEN: c_int = 1;
pub const POINTER_DEVICE_TYPE_EXTERNAL_PEN: c_int = 2;
pub const POINTER_DEVICE_TYPE_TOUCH: c_int = 3;
pub const POINTER_DEVICE_TYPE_TOUCH_PAD: c_int = 4;
pub const POINTER_DEVICE_TYPE_MAX: c_int = -4294967295;
pub const enum_tagPOINTER_DEVICE_TYPE = c_int;
pub const POINTER_DEVICE_TYPE = enum_tagPOINTER_DEVICE_TYPE;
pub const struct_tagPOINTER_DEVICE_INFO = extern struct {
displayOrientation: DWORD,
device: HANDLE,
pointerDeviceType: POINTER_DEVICE_TYPE,
monitor: HMONITOR,
startingCursorId: ULONG,
maxActiveContacts: USHORT,
productString: [520]WCHAR,
};
pub const POINTER_DEVICE_INFO = struct_tagPOINTER_DEVICE_INFO;
pub const struct_tagPOINTER_DEVICE_PROPERTY = extern struct {
logicalMin: INT32,
logicalMax: INT32,
physicalMin: INT32,
physicalMax: INT32,
unit: UINT32,
unitExponent: UINT32,
usagePageId: USHORT,
usageId: USHORT,
};
pub const POINTER_DEVICE_PROPERTY = struct_tagPOINTER_DEVICE_PROPERTY;
pub const POINTER_DEVICE_CURSOR_TYPE_UNKNOWN: c_int = 0;
pub const POINTER_DEVICE_CURSOR_TYPE_TIP: c_int = 1;
pub const POINTER_DEVICE_CURSOR_TYPE_ERASER: c_int = 2;
pub const POINTER_DEVICE_CURSOR_TYPE_MAX: c_int = -4294967295;
pub const enum_tagPOINTER_DEVICE_CURSOR_TYPE = c_int;
pub const POINTER_DEVICE_CURSOR_TYPE_UNKNOWN: c_int = 0;
pub const POINTER_DEVICE_CURSOR_TYPE_TIP: c_int = 1;
pub const POINTER_DEVICE_CURSOR_TYPE_ERASER: c_int = 2;
pub const POINTER_DEVICE_CURSOR_TYPE_MAX: c_int = -4294967295;
pub const enum_tagPOINTER_DEVICE_CURSOR_TYPE = c_int;
pub const POINTER_DEVICE_CURSOR_TYPE = enum_tagPOINTER_DEVICE_CURSOR_TYPE;
pub const struct_tagPOINTER_DEVICE_CURSOR_INFO = extern struct {
cursorId: UINT32,
cursor: POINTER_DEVICE_CURSOR_TYPE,
};
pub const POINTER_DEVICE_CURSOR_INFO = struct_tagPOINTER_DEVICE_CURSOR_INFO;
pub extern fn GetPointerDevices(deviceCount: ?&UINT32, pointerDevices: ?&POINTER_DEVICE_INFO) -> BOOL;
pub extern fn GetPointerDevice(device: HANDLE, pointerDevice: ?&POINTER_DEVICE_INFO) -> BOOL;
pub extern fn GetPointerDeviceProperties(device: HANDLE, propertyCount: ?&UINT32, pointerProperties: ?&POINTER_DEVICE_PROPERTY) -> BOOL;
pub extern fn RegisterPointerDeviceNotifications(window: HWND, notifyRange: BOOL) -> BOOL;
pub extern fn GetPointerDeviceRects(device: HANDLE, pointerDeviceRect: ?&RECT, displayRect: ?&RECT) -> BOOL;
pub extern fn GetPointerDeviceCursors(device: HANDLE, cursorCount: ?&UINT32, deviceCursors: ?&POINTER_DEVICE_CURSOR_INFO) -> BOOL;
pub extern fn GetRawPointerDeviceData(pointerId: UINT32, historyCount: UINT32, propertiesCount: UINT32, pProperties: ?&POINTER_DEVICE_PROPERTY, pValues: ?&LONG) -> BOOL;
pub extern fn ChangeWindowMessageFilter(message: UINT, dwFlag: DWORD) -> BOOL;
pub const struct_tagCHANGEFILTERSTRUCT = extern struct {
cbSize: DWORD,
ExtStatus: DWORD,
};
pub const CHANGEFILTERSTRUCT = struct_tagCHANGEFILTERSTRUCT;
pub const PCHANGEFILTERSTRUCT = ?&struct_tagCHANGEFILTERSTRUCT;
pub extern fn ChangeWindowMessageFilterEx(hwnd: HWND, message: UINT, action: DWORD, pChangeFilterStruct: PCHANGEFILTERSTRUCT) -> BOOL;
pub const struct_HGESTUREINFO__ = extern struct {
unused: c_int,
};
pub const HGESTUREINFO = ?&struct_HGESTUREINFO__;
pub const struct_tagGESTUREINFO = extern struct {
cbSize: UINT,
dwFlags: DWORD,
dwID: DWORD,
hwndTarget: HWND,
ptsLocation: POINTS,
dwInstanceID: DWORD,
dwSequenceID: DWORD,
ullArguments: ULONGLONG,
cbExtraArgs: UINT,
};
pub const GESTUREINFO = struct_tagGESTUREINFO;
pub const PGESTUREINFO = ?&struct_tagGESTUREINFO;
pub const PCGESTUREINFO = ?&const GESTUREINFO;
pub const struct_tagGESTURENOTIFYSTRUCT = extern struct {
cbSize: UINT,
dwFlags: DWORD,
hwndTarget: HWND,
ptsLocation: POINTS,
dwInstanceID: DWORD,
};
pub const GESTURENOTIFYSTRUCT = struct_tagGESTURENOTIFYSTRUCT;
pub const PGESTURENOTIFYSTRUCT = ?&struct_tagGESTURENOTIFYSTRUCT;
pub extern fn GetGestureInfo(hGestureInfo: HGESTUREINFO, pGestureInfo: PGESTUREINFO) -> BOOL;
pub extern fn GetGestureExtraArgs(hGestureInfo: HGESTUREINFO, cbExtraArgs: UINT, pExtraArgs: PBYTE) -> BOOL;
pub extern fn CloseGestureInfoHandle(hGestureInfo: HGESTUREINFO) -> BOOL;
pub const struct_tagGESTURECONFIG = extern struct {
dwID: DWORD,
dwWant: DWORD,
dwBlock: DWORD,
};
pub const GESTURECONFIG = struct_tagGESTURECONFIG;
pub const PGESTURECONFIG = ?&struct_tagGESTURECONFIG;
pub extern fn SetGestureConfig(hwnd: HWND, dwReserved: DWORD, cIDs: UINT, pGestureConfig: PGESTURECONFIG, cbSize: UINT) -> BOOL;
pub extern fn GetGestureConfig(hwnd: HWND, dwReserved: DWORD, dwFlags: DWORD, pcIDs: PUINT, pGestureConfig: PGESTURECONFIG, cbSize: UINT) -> BOOL;
pub extern fn ShutdownBlockReasonCreate(hWnd: HWND, pwszReason: LPCWSTR) -> BOOL;
pub extern fn ShutdownBlockReasonQuery(hWnd: HWND, pwszBuff: LPWSTR, pcchBuff: ?&DWORD) -> BOOL;
pub extern fn ShutdownBlockReasonDestroy(hWnd: HWND) -> BOOL;
pub const IMDT_UNAVAILABLE: c_int = 0;
pub const IMDT_KEYBOARD: c_int = 1;
pub const IMDT_MOUSE: c_int = 2;
pub const IMDT_TOUCH: c_int = 4;
pub const IMDT_PEN: c_int = 8;
pub const IMDT_TOUCHPAD: c_int = 16;
pub const enum_tagINPUT_MESSAGE_DEVICE_TYPE = c_int;
pub const IMDT_UNAVAILABLE: c_int = 0;
pub const IMDT_KEYBOARD: c_int = 1;
pub const IMDT_MOUSE: c_int = 2;
pub const IMDT_TOUCH: c_int = 4;
pub const IMDT_PEN: c_int = 8;
pub const IMDT_TOUCHPAD: c_int = 16;
pub const enum_tagINPUT_MESSAGE_DEVICE_TYPE = c_int;
pub const INPUT_MESSAGE_DEVICE_TYPE = enum_tagINPUT_MESSAGE_DEVICE_TYPE;
pub const IMO_UNAVAILABLE: c_int = 0;
pub const IMO_HARDWARE: c_int = 1;
pub const IMO_INJECTED: c_int = 2;
pub const IMO_SYSTEM: c_int = 4;
pub const enum_tagINPUT_MESSAGE_ORIGIN_ID = c_int;
pub const IMO_UNAVAILABLE: c_int = 0;
pub const IMO_HARDWARE: c_int = 1;
pub const IMO_INJECTED: c_int = 2;
pub const IMO_SYSTEM: c_int = 4;
pub const enum_tagINPUT_MESSAGE_ORIGIN_ID = c_int;
pub const INPUT_MESSAGE_ORIGIN_ID = enum_tagINPUT_MESSAGE_ORIGIN_ID;
pub const struct_tagINPUT_MESSAGE_SOURCE = extern struct {
deviceType: INPUT_MESSAGE_DEVICE_TYPE,
originId: INPUT_MESSAGE_ORIGIN_ID,
};
pub const INPUT_MESSAGE_SOURCE = struct_tagINPUT_MESSAGE_SOURCE;
pub extern fn GetCurrentInputMessageSource(inputMessageSource: ?&INPUT_MESSAGE_SOURCE) -> BOOL;
pub extern fn GetCIMSSM(inputMessageSource: ?&INPUT_MESSAGE_SOURCE) -> BOOL;
pub const AR_ENABLED: c_int = 0;
pub const AR_DISABLED: c_int = 1;
pub const AR_SUPPRESSED: c_int = 2;
pub const AR_REMOTESESSION: c_int = 4;
pub const AR_MULTIMON: c_int = 8;
pub const AR_NOSENSOR: c_int = 16;
pub const AR_NOT_SUPPORTED: c_int = 32;
pub const AR_DOCKED: c_int = 64;
pub const AR_LAPTOP: c_int = 128;
pub const enum_tagAR_STATE = c_int;
pub const AR_ENABLED: c_int = 0;
pub const AR_DISABLED: c_int = 1;
pub const AR_SUPPRESSED: c_int = 2;
pub const AR_REMOTESESSION: c_int = 4;
pub const AR_MULTIMON: c_int = 8;
pub const AR_NOSENSOR: c_int = 16;
pub const AR_NOT_SUPPORTED: c_int = 32;
pub const AR_DOCKED: c_int = 64;
pub const AR_LAPTOP: c_int = 128;
pub const enum_tagAR_STATE = c_int;
pub const AR_STATE = enum_tagAR_STATE;
pub const AR_ENABLED: c_int = 0;
pub const AR_DISABLED: c_int = 1;
pub const AR_SUPPRESSED: c_int = 2;
pub const AR_REMOTESESSION: c_int = 4;
pub const AR_MULTIMON: c_int = 8;
pub const AR_NOSENSOR: c_int = 16;
pub const AR_NOT_SUPPORTED: c_int = 32;
pub const AR_DOCKED: c_int = 64;
pub const AR_LAPTOP: c_int = 128;
pub const enum_tagAR_STATE = c_int;
pub const PAR_STATE = ?&enum_tagAR_STATE;
pub const ORIENTATION_PREFERENCE_NONE: c_int = 0;
pub const ORIENTATION_PREFERENCE_LANDSCAPE: c_int = 1;
pub const ORIENTATION_PREFERENCE_PORTRAIT: c_int = 2;
pub const ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED: c_int = 4;
pub const ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED: c_int = 8;
pub const enum_ORIENTATION_PREFERENCE = c_int;
pub const ORIENTATION_PREFERENCE_NONE: c_int = 0;
pub const ORIENTATION_PREFERENCE_LANDSCAPE: c_int = 1;
pub const ORIENTATION_PREFERENCE_PORTRAIT: c_int = 2;
pub const ORIENTATION_PREFERENCE_LANDSCAPE_FLIPPED: c_int = 4;
pub const ORIENTATION_PREFERENCE_PORTRAIT_FLIPPED: c_int = 8;
pub const enum_ORIENTATION_PREFERENCE = c_int;
pub const ORIENTATION_PREFERENCE = enum_ORIENTATION_PREFERENCE;
pub extern fn GetAutoRotationState(pState: PAR_STATE) -> BOOL;
pub extern fn GetDisplayAutoRotationPreferences(pOrientation: ?&ORIENTATION_PREFERENCE) -> BOOL;
pub extern fn GetDisplayAutoRotationPreferencesByProcessId(dwProcessId: DWORD, pOrientation: ?&ORIENTATION_PREFERENCE, fRotateScreen: ?&BOOL) -> BOOL;
pub extern fn SetDisplayAutoRotationPreferences(orientation: ORIENTATION_PREFERENCE) -> BOOL;
pub extern fn IsImmersiveProcess(hProcess: HANDLE) -> BOOL;
pub extern fn SetProcessRestrictionExemption(fEnableExemption: BOOL) -> BOOL;
pub extern fn GetDateFormatA(Locale: LCID, dwFlags: DWORD, lpDate: ?&const SYSTEMTIME, lpFormat: LPCSTR, lpDateStr: LPSTR, cchDate: c_int) -> c_int;
pub extern fn GetDateFormatW(Locale: LCID, dwFlags: DWORD, lpDate: ?&const SYSTEMTIME, lpFormat: LPCWSTR, lpDateStr: LPWSTR, cchDate: c_int) -> c_int;
pub extern fn GetTimeFormatA(Locale: LCID, dwFlags: DWORD, lpTime: ?&const SYSTEMTIME, lpFormat: LPCSTR, lpTimeStr: LPSTR, cchTime: c_int) -> c_int;
pub extern fn GetTimeFormatW(Locale: LCID, dwFlags: DWORD, lpTime: ?&const SYSTEMTIME, lpFormat: LPCWSTR, lpTimeStr: LPWSTR, cchTime: c_int) -> c_int;
pub extern fn GetTimeFormatEx(lpLocaleName: LPCWSTR, dwFlags: DWORD, lpTime: ?&const SYSTEMTIME, lpFormat: LPCWSTR, lpTimeStr: LPWSTR, cchTime: c_int) -> c_int;
pub extern fn GetDateFormatEx(lpLocaleName: LPCWSTR, dwFlags: DWORD, lpDate: ?&const SYSTEMTIME, lpFormat: LPCWSTR, lpDateStr: LPWSTR, cchDate: c_int, lpCalendar: LPCWSTR) -> c_int;
pub const LGRPID = DWORD;
pub const LCTYPE = DWORD;
pub const CALTYPE = DWORD;
pub const CALID = DWORD;
pub const struct__cpinfo = extern struct {
MaxCharSize: UINT,
DefaultChar: [2]BYTE,
LeadByte: [12]BYTE,
};
pub const CPINFO = struct__cpinfo;
pub const LPCPINFO = ?&struct__cpinfo;
pub const struct__cpinfoexA = extern struct {
MaxCharSize: UINT,
DefaultChar: [2]BYTE,
LeadByte: [12]BYTE,
UnicodeDefaultChar: WCHAR,
CodePage: UINT,
CodePageName: [260]CHAR,
};
pub const CPINFOEXA = struct__cpinfoexA;
pub const LPCPINFOEXA = ?&struct__cpinfoexA;
pub const struct__cpinfoexW = extern struct {
MaxCharSize: UINT,
DefaultChar: [2]BYTE,
LeadByte: [12]BYTE,
UnicodeDefaultChar: WCHAR,
CodePage: UINT,
CodePageName: [260]WCHAR,
};
pub const CPINFOEXW = struct__cpinfoexW;
pub const LPCPINFOEXW = ?&struct__cpinfoexW;
pub const CPINFOEX = CPINFOEXA;
pub const LPCPINFOEX = LPCPINFOEXA;
pub const struct__numberfmtA = extern struct {
NumDigits: UINT,
LeadingZero: UINT,
Grouping: UINT,
lpDecimalSep: LPSTR,
lpThousandSep: LPSTR,
NegativeOrder: UINT,
};
pub const NUMBERFMTA = struct__numberfmtA;
pub const LPNUMBERFMTA = ?&struct__numberfmtA;
pub const struct__numberfmtW = extern struct {
NumDigits: UINT,
LeadingZero: UINT,
Grouping: UINT,
lpDecimalSep: LPWSTR,
lpThousandSep: LPWSTR,
NegativeOrder: UINT,
};
pub const NUMBERFMTW = struct__numberfmtW;
pub const LPNUMBERFMTW = ?&struct__numberfmtW;
pub const NUMBERFMT = NUMBERFMTA;
pub const LPNUMBERFMT = LPNUMBERFMTA;
pub const struct__currencyfmtA = extern struct {
NumDigits: UINT,
LeadingZero: UINT,
Grouping: UINT,
lpDecimalSep: LPSTR,
lpThousandSep: LPSTR,
NegativeOrder: UINT,
PositiveOrder: UINT,
lpCurrencySymbol: LPSTR,
};
pub const CURRENCYFMTA = struct__currencyfmtA;
pub const LPCURRENCYFMTA = ?&struct__currencyfmtA;
pub const struct__currencyfmtW = extern struct {
NumDigits: UINT,
LeadingZero: UINT,
Grouping: UINT,
lpDecimalSep: LPWSTR,
lpThousandSep: LPWSTR,
NegativeOrder: UINT,
PositiveOrder: UINT,
lpCurrencySymbol: LPWSTR,
};
pub const CURRENCYFMTW = struct__currencyfmtW;
pub const LPCURRENCYFMTW = ?&struct__currencyfmtW;
pub const CURRENCYFMT = CURRENCYFMTA;
pub const LPCURRENCYFMT = LPCURRENCYFMTA;
pub const COMPARE_STRING: c_int = 1;
pub const enum_SYSNLS_FUNCTION = c_int;
pub const NLS_FUNCTION = DWORD;
pub const struct__nlsversioninfo = extern struct {
dwNLSVersionInfoSize: DWORD,
dwNLSVersion: DWORD,
dwDefinedVersion: DWORD,
dwEffectiveId: DWORD,
guidCustomVersion: GUID,
};
pub const NLSVERSIONINFO = struct__nlsversioninfo;
pub const LPNLSVERSIONINFO = ?&struct__nlsversioninfo;
pub const struct__nlsversioninfoex = extern struct {
dwNLSVersionInfoSize: DWORD,
dwNLSVersion: DWORD,
dwDefinedVersion: DWORD,
dwEffectiveId: DWORD,
guidCustomVersion: GUID,
};
pub const NLSVERSIONINFOEX = struct__nlsversioninfoex;
pub const LPNLSVERSIONINFOEX = ?&struct__nlsversioninfoex;
pub const GEOID = LONG;
pub const GEOTYPE = DWORD;
pub const GEOCLASS = DWORD;
pub const GEO_NATION: c_int = 1;
pub const GEO_LATITUDE: c_int = 2;
pub const GEO_LONGITUDE: c_int = 3;
pub const GEO_ISO2: c_int = 4;
pub const GEO_ISO3: c_int = 5;
pub const GEO_RFC1766: c_int = 6;
pub const GEO_LCID: c_int = 7;
pub const GEO_FRIENDLYNAME: c_int = 8;
pub const GEO_OFFICIALNAME: c_int = 9;
pub const GEO_TIMEZONES: c_int = 10;
pub const GEO_OFFICIALLANGUAGES: c_int = 11;
pub const GEO_ISO_UN_NUMBER: c_int = 12;
pub const GEO_PARENT: c_int = 13;
pub const enum_SYSGEOTYPE = c_int;
pub const GEOCLASS_NATION: c_int = 16;
pub const GEOCLASS_REGION: c_int = 14;
pub const GEOCLASS_ALL: c_int = 0;
pub const enum_SYSGEOCLASS = c_int;
pub const NormalizationOther: c_int = 0;
pub const NormalizationC: c_int = 1;
pub const NormalizationD: c_int = 2;
pub const NormalizationKC: c_int = 5;
pub const NormalizationKD: c_int = 6;
pub const enum__NORM_FORM = c_int;
pub const NormalizationOther: c_int = 0;
pub const NormalizationC: c_int = 1;
pub const NormalizationD: c_int = 2;
pub const NormalizationKC: c_int = 5;
pub const NormalizationKD: c_int = 6;
pub const enum__NORM_FORM = c_int;
pub const NORM_FORM = enum__NORM_FORM;
pub const LANGUAGEGROUP_ENUMPROCA = ?extern fn(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR) -> BOOL;
pub const LANGGROUPLOCALE_ENUMPROCA = ?extern fn(LGRPID, LCID, LPSTR, LONG_PTR) -> BOOL;
pub const UILANGUAGE_ENUMPROCA = ?extern fn(LPSTR, LONG_PTR) -> BOOL;
pub const CODEPAGE_ENUMPROCA = ?extern fn(LPSTR) -> BOOL;
pub const DATEFMT_ENUMPROCA = ?extern fn(LPSTR) -> BOOL;
pub const DATEFMT_ENUMPROCEXA = ?extern fn(LPSTR, CALID) -> BOOL;
pub const TIMEFMT_ENUMPROCA = ?extern fn(LPSTR) -> BOOL;
pub const CALINFO_ENUMPROCA = ?extern fn(LPSTR) -> BOOL;
pub const CALINFO_ENUMPROCEXA = ?extern fn(LPSTR, CALID) -> BOOL;
pub const LOCALE_ENUMPROCA = ?extern fn(LPSTR) -> BOOL;
pub const LOCALE_ENUMPROCW = ?extern fn(LPWSTR) -> BOOL;
pub const LANGUAGEGROUP_ENUMPROCW = ?extern fn(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR) -> BOOL;
pub const LANGGROUPLOCALE_ENUMPROCW = ?extern fn(LGRPID, LCID, LPWSTR, LONG_PTR) -> BOOL;
pub const UILANGUAGE_ENUMPROCW = ?extern fn(LPWSTR, LONG_PTR) -> BOOL;
pub const CODEPAGE_ENUMPROCW = ?extern fn(LPWSTR) -> BOOL;
pub const DATEFMT_ENUMPROCW = ?extern fn(LPWSTR) -> BOOL;
pub const DATEFMT_ENUMPROCEXW = ?extern fn(LPWSTR, CALID) -> BOOL;
pub const TIMEFMT_ENUMPROCW = ?extern fn(LPWSTR) -> BOOL;
pub const CALINFO_ENUMPROCW = ?extern fn(LPWSTR) -> BOOL;
pub const CALINFO_ENUMPROCEXW = ?extern fn(LPWSTR, CALID) -> BOOL;
pub const GEO_ENUMPROC = ?extern fn(GEOID) -> BOOL;
pub const struct__FILEMUIINFO = extern struct {
dwSize: DWORD,
dwVersion: DWORD,
dwFileType: DWORD,
pChecksum: [16]BYTE,
pServiceChecksum: [16]BYTE,
dwLanguageNameOffset: DWORD,
dwTypeIDMainSize: DWORD,
dwTypeIDMainOffset: DWORD,
dwTypeNameMainOffset: DWORD,
dwTypeIDMUISize: DWORD,
dwTypeIDMUIOffset: DWORD,
dwTypeNameMUIOffset: DWORD,
abBuffer: [8]BYTE,
};
pub const FILEMUIINFO = struct__FILEMUIINFO;
pub const PFILEMUIINFO = ?&struct__FILEMUIINFO;
pub extern fn CompareStringEx(lpLocaleName: LPCWSTR, dwCmpFlags: DWORD, lpString1: LPCWCH, cchCount1: c_int, lpString2: LPCWCH, cchCount2: c_int, lpVersionInformation: LPNLSVERSIONINFO, lpReserved: LPVOID, lParam: LPARAM) -> c_int;
pub extern fn CompareStringOrdinal(lpString1: LPCWCH, cchCount1: c_int, lpString2: LPCWCH, cchCount2: c_int, bIgnoreCase: BOOL) -> c_int;
pub extern fn CompareStringW(Locale: LCID, dwCmpFlags: DWORD, lpString1: PCNZWCH, cchCount1: c_int, lpString2: PCNZWCH, cchCount2: c_int) -> c_int;
pub extern fn FoldStringW(dwMapFlags: DWORD, lpSrcStr: LPCWCH, cchSrc: c_int, lpDestStr: LPWSTR, cchDest: c_int) -> c_int;
pub extern fn GetStringTypeExW(Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCWCH, cchSrc: c_int, lpCharType: LPWORD) -> BOOL;
pub extern fn GetStringTypeW(dwInfoType: DWORD, lpSrcStr: LPCWCH, cchSrc: c_int, lpCharType: LPWORD) -> BOOL;
pub extern fn MultiByteToWideChar(CodePage: UINT, dwFlags: DWORD, lpMultiByteStr: LPCCH, cbMultiByte: c_int, lpWideCharStr: LPWSTR, cchWideChar: c_int) -> c_int;
pub extern fn WideCharToMultiByte(CodePage: UINT, dwFlags: DWORD, lpWideCharStr: LPCWCH, cchWideChar: c_int, lpMultiByteStr: LPSTR, cbMultiByte: c_int, lpDefaultChar: LPCCH, lpUsedDefaultChar: LPBOOL) -> c_int;
pub extern fn IsValidCodePage(CodePage: UINT) -> BOOL;
pub extern fn GetACP() -> UINT;
pub extern fn GetOEMCP() -> UINT;
pub extern fn GetCPInfo(CodePage: UINT, lpCPInfo: LPCPINFO) -> BOOL;
pub extern fn GetCPInfoExA(CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXA) -> BOOL;
pub extern fn GetCPInfoExW(CodePage: UINT, dwFlags: DWORD, lpCPInfoEx: LPCPINFOEXW) -> BOOL;
pub extern fn CompareStringA(Locale: LCID, dwCmpFlags: DWORD, lpString1: PCNZCH, cchCount1: c_int, lpString2: PCNZCH, cchCount2: c_int) -> c_int;
pub extern fn FindNLSString(Locale: LCID, dwFindNLSStringFlags: DWORD, lpStringSource: LPCWSTR, cchSource: c_int, lpStringValue: LPCWSTR, cchValue: c_int, pcchFound: LPINT) -> c_int;
pub extern fn LCMapStringW(Locale: LCID, dwMapFlags: DWORD, lpSrcStr: LPCWSTR, cchSrc: c_int, lpDestStr: LPWSTR, cchDest: c_int) -> c_int;
pub extern fn LCMapStringA(Locale: LCID, dwMapFlags: DWORD, lpSrcStr: LPCSTR, cchSrc: c_int, lpDestStr: LPSTR, cchDest: c_int) -> c_int;
pub extern fn GetLocaleInfoW(Locale: LCID, LCType: LCTYPE, lpLCData: LPWSTR, cchData: c_int) -> c_int;
pub extern fn GetLocaleInfoA(Locale: LCID, LCType: LCTYPE, lpLCData: LPSTR, cchData: c_int) -> c_int;
pub extern fn SetLocaleInfoA(Locale: LCID, LCType: LCTYPE, lpLCData: LPCSTR) -> BOOL;
pub extern fn SetLocaleInfoW(Locale: LCID, LCType: LCTYPE, lpLCData: LPCWSTR) -> BOOL;
pub extern fn GetCalendarInfoA(Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPSTR, cchData: c_int, lpValue: LPDWORD) -> c_int;
pub extern fn GetCalendarInfoW(Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPWSTR, cchData: c_int, lpValue: LPDWORD) -> c_int;
pub extern fn SetCalendarInfoA(Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPCSTR) -> BOOL;
pub extern fn SetCalendarInfoW(Locale: LCID, Calendar: CALID, CalType: CALTYPE, lpCalData: LPCWSTR) -> BOOL;
pub extern fn LoadStringByReference(Flags: DWORD, Language: PCWSTR, SourceString: PCWSTR, Buffer: PWSTR, cchBuffer: ULONG, Directory: PCWSTR, pcchBufferOut: PULONG) -> BOOL;
pub extern fn IsDBCSLeadByte(TestChar: BYTE) -> BOOL;
pub extern fn IsDBCSLeadByteEx(CodePage: UINT, TestChar: BYTE) -> BOOL;
pub extern fn LCIDToLocaleName(Locale: LCID, lpName: LPWSTR, cchName: c_int, dwFlags: DWORD) -> c_int;
pub extern fn LocaleNameToLCID(lpName: LPCWSTR, dwFlags: DWORD) -> LCID;
pub extern fn GetDurationFormat(Locale: LCID, dwFlags: DWORD, lpDuration: ?&const SYSTEMTIME, ullDuration: ULONGLONG, lpFormat: LPCWSTR, lpDurationStr: LPWSTR, cchDuration: c_int) -> c_int;
pub extern fn GetNumberFormatA(Locale: LCID, dwFlags: DWORD, lpValue: LPCSTR, lpFormat: ?&const NUMBERFMTA, lpNumberStr: LPSTR, cchNumber: c_int) -> c_int;
pub extern fn GetNumberFormatW(Locale: LCID, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: ?&const NUMBERFMTW, lpNumberStr: LPWSTR, cchNumber: c_int) -> c_int;
pub extern fn GetCurrencyFormatA(Locale: LCID, dwFlags: DWORD, lpValue: LPCSTR, lpFormat: ?&const CURRENCYFMTA, lpCurrencyStr: LPSTR, cchCurrency: c_int) -> c_int;
pub extern fn GetCurrencyFormatW(Locale: LCID, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: ?&const CURRENCYFMTW, lpCurrencyStr: LPWSTR, cchCurrency: c_int) -> c_int;
pub extern fn EnumCalendarInfoA(lpCalInfoEnumProc: CALINFO_ENUMPROCA, Locale: LCID, Calendar: CALID, CalType: CALTYPE) -> BOOL;
pub extern fn EnumCalendarInfoW(lpCalInfoEnumProc: CALINFO_ENUMPROCW, Locale: LCID, Calendar: CALID, CalType: CALTYPE) -> BOOL;
pub extern fn EnumCalendarInfoExA(lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXA, Locale: LCID, Calendar: CALID, CalType: CALTYPE) -> BOOL;
pub extern fn EnumCalendarInfoExW(lpCalInfoEnumProcEx: CALINFO_ENUMPROCEXW, Locale: LCID, Calendar: CALID, CalType: CALTYPE) -> BOOL;
pub extern fn EnumTimeFormatsA(lpTimeFmtEnumProc: TIMEFMT_ENUMPROCA, Locale: LCID, dwFlags: DWORD) -> BOOL;
pub extern fn EnumTimeFormatsW(lpTimeFmtEnumProc: TIMEFMT_ENUMPROCW, Locale: LCID, dwFlags: DWORD) -> BOOL;
pub extern fn EnumDateFormatsA(lpDateFmtEnumProc: DATEFMT_ENUMPROCA, Locale: LCID, dwFlags: DWORD) -> BOOL;
pub extern fn EnumDateFormatsW(lpDateFmtEnumProc: DATEFMT_ENUMPROCW, Locale: LCID, dwFlags: DWORD) -> BOOL;
pub extern fn EnumDateFormatsExA(lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXA, Locale: LCID, dwFlags: DWORD) -> BOOL;
pub extern fn EnumDateFormatsExW(lpDateFmtEnumProcEx: DATEFMT_ENUMPROCEXW, Locale: LCID, dwFlags: DWORD) -> BOOL;
pub extern fn IsValidLanguageGroup(LanguageGroup: LGRPID, dwFlags: DWORD) -> BOOL;
pub extern fn GetNLSVersion(Function: NLS_FUNCTION, Locale: LCID, lpVersionInformation: LPNLSVERSIONINFO) -> BOOL;
pub extern fn IsNLSDefinedString(Function: NLS_FUNCTION, dwFlags: DWORD, lpVersionInformation: LPNLSVERSIONINFO, lpString: LPCWSTR, cchStr: INT) -> BOOL;
pub extern fn IsValidLocale(Locale: LCID, dwFlags: DWORD) -> BOOL;
pub extern fn GetGeoInfoA(Location: GEOID, GeoType: GEOTYPE, lpGeoData: LPSTR, cchData: c_int, LangId: LANGID) -> c_int;
pub extern fn GetGeoInfoW(Location: GEOID, GeoType: GEOTYPE, lpGeoData: LPWSTR, cchData: c_int, LangId: LANGID) -> c_int;
pub extern fn EnumSystemGeoID(GeoClass: GEOCLASS, ParentGeoId: GEOID, lpGeoEnumProc: GEO_ENUMPROC) -> BOOL;
pub extern fn GetUserGeoID(GeoClass: GEOCLASS) -> GEOID;
pub extern fn SetUserGeoID(GeoId: GEOID) -> BOOL;
pub extern fn ConvertDefaultLocale(Locale: LCID) -> LCID;
pub extern fn GetThreadLocale() -> LCID;
pub extern fn SetThreadLocale(Locale: LCID) -> BOOL;
pub extern fn GetSystemDefaultUILanguage() -> LANGID;
pub extern fn GetUserDefaultUILanguage() -> LANGID;
pub extern fn GetSystemDefaultLangID() -> LANGID;
pub extern fn GetUserDefaultLangID() -> LANGID;
pub extern fn GetSystemDefaultLCID() -> LCID;
pub extern fn GetUserDefaultLCID() -> LCID;
pub extern fn SetThreadUILanguage(LangId: LANGID) -> LANGID;
pub extern fn GetThreadUILanguage() -> LANGID;
pub extern fn GetProcessPreferredUILanguages(dwFlags: DWORD, pulNumLanguages: PULONG, pwszLanguagesBuffer: PZZWSTR, pcchLanguagesBuffer: PULONG) -> BOOL;
pub extern fn SetProcessPreferredUILanguages(dwFlags: DWORD, pwszLanguagesBuffer: PCZZWSTR, pulNumLanguages: PULONG) -> BOOL;
pub extern fn GetUserPreferredUILanguages(dwFlags: DWORD, pulNumLanguages: PULONG, pwszLanguagesBuffer: PZZWSTR, pcchLanguagesBuffer: PULONG) -> BOOL;
pub extern fn GetSystemPreferredUILanguages(dwFlags: DWORD, pulNumLanguages: PULONG, pwszLanguagesBuffer: PZZWSTR, pcchLanguagesBuffer: PULONG) -> BOOL;
pub extern fn GetThreadPreferredUILanguages(dwFlags: DWORD, pulNumLanguages: PULONG, pwszLanguagesBuffer: PZZWSTR, pcchLanguagesBuffer: PULONG) -> BOOL;
pub extern fn SetThreadPreferredUILanguages(dwFlags: DWORD, pwszLanguagesBuffer: PCZZWSTR, pulNumLanguages: PULONG) -> BOOL;
pub extern fn GetFileMUIInfo(dwFlags: DWORD, pcwszFilePath: PCWSTR, pFileMUIInfo: PFILEMUIINFO, pcbFileMUIInfo: ?&DWORD) -> BOOL;
pub extern fn GetFileMUIPath(dwFlags: DWORD, pcwszFilePath: PCWSTR, pwszLanguage: PWSTR, pcchLanguage: PULONG, pwszFileMUIPath: PWSTR, pcchFileMUIPath: PULONG, pululEnumerator: PULONGLONG) -> BOOL;
pub extern fn GetUILanguageInfo(dwFlags: DWORD, pwmszLanguage: PCZZWSTR, pwszFallbackLanguages: PZZWSTR, pcchFallbackLanguages: PDWORD, pAttributes: PDWORD) -> BOOL;
pub extern fn NotifyUILanguageChange(dwFlags: DWORD, pcwstrNewLanguage: PCWSTR, pcwstrPreviousLanguage: PCWSTR, dwReserved: DWORD, pdwStatusRtrn: PDWORD) -> BOOL;
pub extern fn GetStringTypeExA(Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCSTR, cchSrc: c_int, lpCharType: LPWORD) -> BOOL;
pub extern fn GetStringTypeA(Locale: LCID, dwInfoType: DWORD, lpSrcStr: LPCSTR, cchSrc: c_int, lpCharType: LPWORD) -> BOOL;
pub extern fn FoldStringA(dwMapFlags: DWORD, lpSrcStr: LPCSTR, cchSrc: c_int, lpDestStr: LPSTR, cchDest: c_int) -> c_int;
pub extern fn EnumSystemLocalesA(lpLocaleEnumProc: LOCALE_ENUMPROCA, dwFlags: DWORD) -> BOOL;
pub extern fn EnumSystemLocalesW(lpLocaleEnumProc: LOCALE_ENUMPROCW, dwFlags: DWORD) -> BOOL;
pub extern fn EnumSystemLanguageGroupsA(lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCA, dwFlags: DWORD, lParam: LONG_PTR) -> BOOL;
pub extern fn EnumSystemLanguageGroupsW(lpLanguageGroupEnumProc: LANGUAGEGROUP_ENUMPROCW, dwFlags: DWORD, lParam: LONG_PTR) -> BOOL;
pub extern fn EnumLanguageGroupLocalesA(lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCA, LanguageGroup: LGRPID, dwFlags: DWORD, lParam: LONG_PTR) -> BOOL;
pub extern fn EnumLanguageGroupLocalesW(lpLangGroupLocaleEnumProc: LANGGROUPLOCALE_ENUMPROCW, LanguageGroup: LGRPID, dwFlags: DWORD, lParam: LONG_PTR) -> BOOL;
pub extern fn EnumUILanguagesA(lpUILanguageEnumProc: UILANGUAGE_ENUMPROCA, dwFlags: DWORD, lParam: LONG_PTR) -> BOOL;
pub extern fn EnumUILanguagesW(lpUILanguageEnumProc: UILANGUAGE_ENUMPROCW, dwFlags: DWORD, lParam: LONG_PTR) -> BOOL;
pub extern fn EnumSystemCodePagesA(lpCodePageEnumProc: CODEPAGE_ENUMPROCA, dwFlags: DWORD) -> BOOL;
pub extern fn EnumSystemCodePagesW(lpCodePageEnumProc: CODEPAGE_ENUMPROCW, dwFlags: DWORD) -> BOOL;
pub extern fn NormalizeString(NormForm: NORM_FORM, lpSrcString: LPCWSTR, cwSrcLength: c_int, lpDstString: LPWSTR, cwDstLength: c_int) -> c_int;
pub extern fn IsNormalizedString(NormForm: NORM_FORM, lpString: LPCWSTR, cwLength: c_int) -> BOOL;
pub extern fn IdnToAscii(dwFlags: DWORD, lpUnicodeCharStr: LPCWSTR, cchUnicodeChar: c_int, lpASCIICharStr: LPWSTR, cchASCIIChar: c_int) -> c_int;
pub extern fn IdnToNameprepUnicode(dwFlags: DWORD, lpUnicodeCharStr: LPCWSTR, cchUnicodeChar: c_int, lpNameprepCharStr: LPWSTR, cchNameprepChar: c_int) -> c_int;
pub extern fn IdnToUnicode(dwFlags: DWORD, lpASCIICharStr: LPCWSTR, cchASCIIChar: c_int, lpUnicodeCharStr: LPWSTR, cchUnicodeChar: c_int) -> c_int;
pub extern fn VerifyScripts(dwFlags: DWORD, lpLocaleScripts: LPCWSTR, cchLocaleScripts: c_int, lpTestScripts: LPCWSTR, cchTestScripts: c_int) -> BOOL;
pub extern fn GetStringScripts(dwFlags: DWORD, lpString: LPCWSTR, cchString: c_int, lpScripts: LPWSTR, cchScripts: c_int) -> c_int;
pub extern fn GetLocaleInfoEx(lpLocaleName: LPCWSTR, LCType: LCTYPE, lpLCData: LPWSTR, cchData: c_int) -> c_int;
pub extern fn GetCalendarInfoEx(lpLocaleName: LPCWSTR, Calendar: CALID, lpReserved: LPCWSTR, CalType: CALTYPE, lpCalData: LPWSTR, cchData: c_int, lpValue: LPDWORD) -> c_int;
pub extern fn GetDurationFormatEx(lpLocaleName: LPCWSTR, dwFlags: DWORD, lpDuration: ?&const SYSTEMTIME, ullDuration: ULONGLONG, lpFormat: LPCWSTR, lpDurationStr: LPWSTR, cchDuration: c_int) -> c_int;
pub extern fn GetNumberFormatEx(lpLocaleName: LPCWSTR, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: ?&const NUMBERFMTW, lpNumberStr: LPWSTR, cchNumber: c_int) -> c_int;
pub extern fn GetCurrencyFormatEx(lpLocaleName: LPCWSTR, dwFlags: DWORD, lpValue: LPCWSTR, lpFormat: ?&const CURRENCYFMTW, lpCurrencyStr: LPWSTR, cchCurrency: c_int) -> c_int;
pub extern fn GetUserDefaultLocaleName(lpLocaleName: LPWSTR, cchLocaleName: c_int) -> c_int;
pub extern fn GetSystemDefaultLocaleName(lpLocaleName: LPWSTR, cchLocaleName: c_int) -> c_int;
pub extern fn GetNLSVersionEx(function: NLS_FUNCTION, lpLocaleName: LPCWSTR, lpVersionInformation: LPNLSVERSIONINFOEX) -> BOOL;
pub extern fn IsValidNLSVersion(function: NLS_FUNCTION, lpLocaleName: LPCWSTR, lpVersionInformation: LPNLSVERSIONINFOEX) -> DWORD;
pub extern fn FindNLSStringEx(lpLocaleName: LPCWSTR, dwFindNLSStringFlags: DWORD, lpStringSource: LPCWSTR, cchSource: c_int, lpStringValue: LPCWSTR, cchValue: c_int, pcchFound: LPINT, lpVersionInformation: LPNLSVERSIONINFO, lpReserved: LPVOID, sortHandle: LPARAM) -> c_int;
pub extern fn LCMapStringEx(lpLocaleName: LPCWSTR, dwMapFlags: DWORD, lpSrcStr: LPCWSTR, cchSrc: c_int, lpDestStr: LPWSTR, cchDest: c_int, lpVersionInformation: LPNLSVERSIONINFO, lpReserved: LPVOID, sortHandle: LPARAM) -> c_int;
pub extern fn IsValidLocaleName(lpLocaleName: LPCWSTR) -> BOOL;
pub const CALINFO_ENUMPROCEXEX = ?extern fn(LPWSTR, CALID, LPWSTR, LPARAM) -> BOOL;
pub extern fn EnumCalendarInfoExEx(pCalInfoEnumProcExEx: CALINFO_ENUMPROCEXEX, lpLocaleName: LPCWSTR, Calendar: CALID, lpReserved: LPCWSTR, CalType: CALTYPE, lParam: LPARAM) -> BOOL;
pub const DATEFMT_ENUMPROCEXEX = ?extern fn(LPWSTR, CALID, LPARAM) -> BOOL;
pub extern fn EnumDateFormatsExEx(lpDateFmtEnumProcExEx: DATEFMT_ENUMPROCEXEX, lpLocaleName: LPCWSTR, dwFlags: DWORD, lParam: LPARAM) -> BOOL;
pub const TIMEFMT_ENUMPROCEX = ?extern fn(LPWSTR, LPARAM) -> BOOL;
pub extern fn EnumTimeFormatsEx(lpTimeFmtEnumProcEx: TIMEFMT_ENUMPROCEX, lpLocaleName: LPCWSTR, dwFlags: DWORD, lParam: LPARAM) -> BOOL;
pub const LOCALE_ENUMPROCEX = ?extern fn(LPWSTR, DWORD, LPARAM) -> BOOL;
pub extern fn EnumSystemLocalesEx(lpLocaleEnumProcEx: LOCALE_ENUMPROCEX, dwFlags: DWORD, lParam: LPARAM, lpReserved: LPVOID) -> BOOL;
pub extern fn ResolveLocaleName(lpNameToResolve: LPCWSTR, lpLocaleName: LPWSTR, cchLocaleName: c_int) -> c_int;
pub const struct__COORD = extern struct {
X: SHORT,
Y: SHORT,
};
pub const COORD = struct__COORD;
pub const PCOORD = ?&struct__COORD;
pub const struct__SMALL_RECT = extern struct {
Left: SHORT,
Top: SHORT,
Right: SHORT,
Bottom: SHORT,
};
pub const SMALL_RECT = struct__SMALL_RECT;
pub const PSMALL_RECT = ?&struct__SMALL_RECT;
pub const struct__KEY_EVENT_RECORD = @OpaqueType();
pub const KEY_EVENT_RECORD = struct__KEY_EVENT_RECORD;
pub const PKEY_EVENT_RECORD = ?&struct__KEY_EVENT_RECORD;
pub const struct__MOUSE_EVENT_RECORD = extern struct {
dwMousePosition: COORD,
dwButtonState: DWORD,
dwControlKeyState: DWORD,
dwEventFlags: DWORD,
};
pub const MOUSE_EVENT_RECORD = struct__MOUSE_EVENT_RECORD;
pub const PMOUSE_EVENT_RECORD = ?&struct__MOUSE_EVENT_RECORD;
pub const struct__WINDOW_BUFFER_SIZE_RECORD = extern struct {
dwSize: COORD,
};
pub const WINDOW_BUFFER_SIZE_RECORD = struct__WINDOW_BUFFER_SIZE_RECORD;
pub const PWINDOW_BUFFER_SIZE_RECORD = ?&struct__WINDOW_BUFFER_SIZE_RECORD;
pub const struct__MENU_EVENT_RECORD = extern struct {
dwCommandId: UINT,
};
pub const MENU_EVENT_RECORD = struct__MENU_EVENT_RECORD;
pub const PMENU_EVENT_RECORD = ?&struct__MENU_EVENT_RECORD;
pub const struct__FOCUS_EVENT_RECORD = extern struct {
bSetFocus: BOOL,
};
pub const FOCUS_EVENT_RECORD = struct__FOCUS_EVENT_RECORD;
pub const PFOCUS_EVENT_RECORD = ?&struct__FOCUS_EVENT_RECORD;
pub const struct__INPUT_RECORD = @OpaqueType();
pub const INPUT_RECORD = struct__INPUT_RECORD;
pub const PINPUT_RECORD = ?&struct__INPUT_RECORD;
pub const struct__CHAR_INFO = @OpaqueType();
pub const CHAR_INFO = struct__CHAR_INFO;
pub const PCHAR_INFO = ?&struct__CHAR_INFO;
pub const struct__CONSOLE_SCREEN_BUFFER_INFO = extern struct {
dwSize: COORD,
dwCursorPosition: COORD,
wAttributes: WORD,
srWindow: SMALL_RECT,
dwMaximumWindowSize: COORD,
};
pub const CONSOLE_SCREEN_BUFFER_INFO = struct__CONSOLE_SCREEN_BUFFER_INFO;
pub const PCONSOLE_SCREEN_BUFFER_INFO = ?&struct__CONSOLE_SCREEN_BUFFER_INFO;
pub const struct__CONSOLE_SCREEN_BUFFER_INFOEX = extern struct {
cbSize: ULONG,
dwSize: COORD,
dwCursorPosition: COORD,
wAttributes: WORD,
srWindow: SMALL_RECT,
dwMaximumWindowSize: COORD,
wPopupAttributes: WORD,
bFullscreenSupported: BOOL,
ColorTable: [16]COLORREF,
};
pub const CONSOLE_SCREEN_BUFFER_INFOEX = struct__CONSOLE_SCREEN_BUFFER_INFOEX;
pub const PCONSOLE_SCREEN_BUFFER_INFOEX = ?&struct__CONSOLE_SCREEN_BUFFER_INFOEX;
pub const struct__CONSOLE_CURSOR_INFO = extern struct {
dwSize: DWORD,
bVisible: BOOL,
};
pub const CONSOLE_CURSOR_INFO = struct__CONSOLE_CURSOR_INFO;
pub const PCONSOLE_CURSOR_INFO = ?&struct__CONSOLE_CURSOR_INFO;
pub const struct__CONSOLE_FONT_INFO = extern struct {
nFont: DWORD,
dwFontSize: COORD,
};
pub const CONSOLE_FONT_INFO = struct__CONSOLE_FONT_INFO;
pub const PCONSOLE_FONT_INFO = ?&struct__CONSOLE_FONT_INFO;
pub const struct__CONSOLE_FONT_INFOEX = extern struct {
cbSize: ULONG,
nFont: DWORD,
dwFontSize: COORD,
FontFamily: UINT,
FontWeight: UINT,
FaceName: [32]WCHAR,
};
pub const CONSOLE_FONT_INFOEX = struct__CONSOLE_FONT_INFOEX;
pub const PCONSOLE_FONT_INFOEX = ?&struct__CONSOLE_FONT_INFOEX;
pub const struct__CONSOLE_HISTORY_INFO = extern struct {
cbSize: UINT,
HistoryBufferSize: UINT,
NumberOfHistoryBuffers: UINT,
dwFlags: DWORD,
};
pub const CONSOLE_HISTORY_INFO = struct__CONSOLE_HISTORY_INFO;
pub const PCONSOLE_HISTORY_INFO = ?&struct__CONSOLE_HISTORY_INFO;
pub const struct__CONSOLE_SELECTION_INFO = extern struct {
dwFlags: DWORD,
dwSelectionAnchor: COORD,
srSelection: SMALL_RECT,
};
pub const CONSOLE_SELECTION_INFO = struct__CONSOLE_SELECTION_INFO;
pub const PCONSOLE_SELECTION_INFO = ?&struct__CONSOLE_SELECTION_INFO;
pub const PHANDLER_ROUTINE = ?extern fn(DWORD) -> BOOL;
pub extern fn PeekConsoleInputW(hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD) -> BOOL;
pub extern fn WriteConsoleInputA(hConsoleInput: HANDLE, lpBuffer: ?&const INPUT_RECORD, nLength: DWORD, lpNumberOfEventsWritten: LPDWORD) -> BOOL;
pub extern fn WriteConsoleInputW(hConsoleInput: HANDLE, lpBuffer: ?&const INPUT_RECORD, nLength: DWORD, lpNumberOfEventsWritten: LPDWORD) -> BOOL;
pub extern fn ReadConsoleOutputA(hConsoleOutput: HANDLE, lpBuffer: PCHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD, lpReadRegion: PSMALL_RECT) -> BOOL;
pub extern fn ReadConsoleOutputW(hConsoleOutput: HANDLE, lpBuffer: PCHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD, lpReadRegion: PSMALL_RECT) -> BOOL;
pub extern fn WriteConsoleOutputA(hConsoleOutput: HANDLE, lpBuffer: ?&const CHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD, lpWriteRegion: PSMALL_RECT) -> BOOL;
pub extern fn WriteConsoleOutputW(hConsoleOutput: HANDLE, lpBuffer: ?&const CHAR_INFO, dwBufferSize: COORD, dwBufferCoord: COORD, lpWriteRegion: PSMALL_RECT) -> BOOL;
pub extern fn ReadConsoleOutputCharacterA(hConsoleOutput: HANDLE, lpCharacter: LPSTR, nLength: DWORD, dwReadCoord: COORD, lpNumberOfCharsRead: LPDWORD) -> BOOL;
pub extern fn ReadConsoleOutputCharacterW(hConsoleOutput: HANDLE, lpCharacter: LPWSTR, nLength: DWORD, dwReadCoord: COORD, lpNumberOfCharsRead: LPDWORD) -> BOOL;
pub extern fn ReadConsoleOutputAttribute(hConsoleOutput: HANDLE, lpAttribute: LPWORD, nLength: DWORD, dwReadCoord: COORD, lpNumberOfAttrsRead: LPDWORD) -> BOOL;
pub extern fn WriteConsoleOutputCharacterA(hConsoleOutput: HANDLE, lpCharacter: LPCSTR, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfCharsWritten: LPDWORD) -> BOOL;
pub extern fn WriteConsoleOutputCharacterW(hConsoleOutput: HANDLE, lpCharacter: LPCWSTR, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfCharsWritten: LPDWORD) -> BOOL;
pub extern fn WriteConsoleOutputAttribute(hConsoleOutput: HANDLE, lpAttribute: ?&const WORD, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfAttrsWritten: LPDWORD) -> BOOL;
pub extern fn FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: CHAR, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfCharsWritten: LPDWORD) -> BOOL;
pub extern fn FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfCharsWritten: LPDWORD) -> BOOL;
pub extern fn FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: DWORD, dwWriteCoord: COORD, lpNumberOfAttrsWritten: LPDWORD) -> BOOL;
pub extern fn GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: PCONSOLE_SCREEN_BUFFER_INFO) -> BOOL;
pub extern fn GetConsoleScreenBufferInfoEx(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfoEx: PCONSOLE_SCREEN_BUFFER_INFOEX) -> BOOL;
pub extern fn SetConsoleScreenBufferInfoEx(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfoEx: PCONSOLE_SCREEN_BUFFER_INFOEX) -> BOOL;
pub extern fn GetLargestConsoleWindowSize(hConsoleOutput: HANDLE) -> COORD;
pub extern fn GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: PCONSOLE_CURSOR_INFO) -> BOOL;
pub extern fn GetCurrentConsoleFont(hConsoleOutput: HANDLE, bMaximumWindow: BOOL, lpConsoleCurrentFont: PCONSOLE_FONT_INFO) -> BOOL;
pub extern fn GetCurrentConsoleFontEx(hConsoleOutput: HANDLE, bMaximumWindow: BOOL, lpConsoleCurrentFontEx: PCONSOLE_FONT_INFOEX) -> BOOL;
pub extern fn SetCurrentConsoleFontEx(hConsoleOutput: HANDLE, bMaximumWindow: BOOL, lpConsoleCurrentFontEx: PCONSOLE_FONT_INFOEX) -> BOOL;
pub extern fn GetConsoleHistoryInfo(lpConsoleHistoryInfo: PCONSOLE_HISTORY_INFO) -> BOOL;
pub extern fn SetConsoleHistoryInfo(lpConsoleHistoryInfo: PCONSOLE_HISTORY_INFO) -> BOOL;
pub extern fn GetConsoleFontSize(hConsoleOutput: HANDLE, nFont: DWORD) -> COORD;
pub extern fn GetConsoleSelectionInfo(lpConsoleSelectionInfo: PCONSOLE_SELECTION_INFO) -> BOOL;
pub extern fn GetNumberOfConsoleMouseButtons(lpNumberOfMouseButtons: LPDWORD) -> BOOL;
pub extern fn SetConsoleActiveScreenBuffer(hConsoleOutput: HANDLE) -> BOOL;
pub extern fn FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL;
pub extern fn SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL;
pub extern fn SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL;
pub extern fn SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: ?&const CONSOLE_CURSOR_INFO) -> BOOL;
pub extern fn ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: ?&const SMALL_RECT, lpClipRectangle: ?&const SMALL_RECT, dwDestinationOrigin: COORD, lpFill: ?&const CHAR_INFO) -> BOOL;
pub extern fn ScrollConsoleScreenBufferW(hConsoleOutput: HANDLE, lpScrollRectangle: ?&const SMALL_RECT, lpClipRectangle: ?&const SMALL_RECT, dwDestinationOrigin: COORD, lpFill: ?&const CHAR_INFO) -> BOOL;
pub extern fn SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: ?&const SMALL_RECT) -> BOOL;
pub extern fn SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL;
pub extern fn GenerateConsoleCtrlEvent(dwCtrlEvent: DWORD, dwProcessGroupId: DWORD) -> BOOL;
pub extern fn FreeConsole() -> BOOL;
pub extern fn AttachConsole(dwProcessId: DWORD) -> BOOL;
pub extern fn GetConsoleTitleA(lpConsoleTitle: LPSTR, nSize: DWORD) -> DWORD;
pub extern fn GetConsoleTitleW(lpConsoleTitle: LPWSTR, nSize: DWORD) -> DWORD;
pub extern fn GetConsoleOriginalTitleA(lpConsoleTitle: LPSTR, nSize: DWORD) -> DWORD;
pub extern fn GetConsoleOriginalTitleW(lpConsoleTitle: LPWSTR, nSize: DWORD) -> DWORD;
pub extern fn SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL;
pub extern fn SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL;
pub const struct__CONSOLE_READCONSOLE_CONTROL = extern struct {
nLength: ULONG,
nInitialChars: ULONG,
dwCtrlWakeupMask: ULONG,
dwControlKeyState: ULONG,
};
pub const CONSOLE_READCONSOLE_CONTROL = struct__CONSOLE_READCONSOLE_CONTROL;
pub const PCONSOLE_READCONSOLE_CONTROL = ?&struct__CONSOLE_READCONSOLE_CONTROL;
pub extern fn AllocConsole() -> BOOL;
pub extern fn GetConsoleCP() -> UINT;
pub extern fn GetConsoleMode(hConsoleHandle: HANDLE, lpMode: LPDWORD) -> BOOL;
pub extern fn GetConsoleOutputCP() -> UINT;
pub extern fn GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: LPDWORD) -> BOOL;
pub extern fn PeekConsoleInputA(hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD) -> BOOL;
pub extern fn ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: LPVOID, nNumberOfCharsToRead: DWORD, lpNumberOfCharsRead: LPDWORD, pInputControl: PCONSOLE_READCONSOLE_CONTROL) -> BOOL;
pub extern fn ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: LPVOID, nNumberOfCharsToRead: DWORD, lpNumberOfCharsRead: LPDWORD, pInputControl: PCONSOLE_READCONSOLE_CONTROL) -> BOOL;
pub extern fn ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD) -> BOOL;
pub extern fn ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: PINPUT_RECORD, nLength: DWORD, lpNumberOfEventsRead: LPDWORD) -> BOOL;
pub extern fn SetConsoleCtrlHandler(HandlerRoutine: PHANDLER_ROUTINE, Add: BOOL) -> BOOL;
pub extern fn SetConsoleMode(hConsoleHandle: HANDLE, dwMode: DWORD) -> BOOL;
pub extern fn WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: ?&const c_void, nNumberOfCharsToWrite: DWORD, lpNumberOfCharsWritten: LPDWORD, lpReserved: LPVOID) -> BOOL;
pub extern fn WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: ?&const c_void, nNumberOfCharsToWrite: DWORD, lpNumberOfCharsWritten: LPDWORD, lpReserved: LPVOID) -> BOOL;
pub extern fn CreateConsoleScreenBuffer(dwDesiredAccess: DWORD, dwShareMode: DWORD, lpSecurityAttributes: ?&const SECURITY_ATTRIBUTES, dwFlags: DWORD, lpScreenBufferData: LPVOID) -> HANDLE;
pub extern fn SetConsoleCP(wCodePageID: UINT) -> BOOL;
pub extern fn SetConsoleOutputCP(wCodePageID: UINT) -> BOOL;
pub extern fn GetConsoleDisplayMode(lpModeFlags: LPDWORD) -> BOOL;
pub extern fn SetConsoleDisplayMode(hConsoleOutput: HANDLE, dwFlags: DWORD, lpNewScreenBufferDimensions: PCOORD) -> BOOL;
pub extern fn GetConsoleWindow() -> HWND;
pub extern fn GetConsoleProcessList(lpdwProcessList: LPDWORD, dwProcessCount: DWORD) -> DWORD;
pub extern fn AddConsoleAliasA(Source: LPSTR, Target: LPSTR, ExeName: LPSTR) -> BOOL;
pub extern fn AddConsoleAliasW(Source: LPWSTR, Target: LPWSTR, ExeName: LPWSTR) -> BOOL;
pub extern fn GetConsoleAliasA(Source: LPSTR, TargetBuffer: LPSTR, TargetBufferLength: DWORD, ExeName: LPSTR) -> DWORD;
pub extern fn GetConsoleAliasW(Source: LPWSTR, TargetBuffer: LPWSTR, TargetBufferLength: DWORD, ExeName: LPWSTR) -> DWORD;
pub extern fn GetConsoleAliasesLengthA(ExeName: LPSTR) -> DWORD;
pub extern fn GetConsoleAliasesLengthW(ExeName: LPWSTR) -> DWORD;
pub extern fn GetConsoleAliasExesLengthA() -> DWORD;
pub extern fn GetConsoleAliasExesLengthW() -> DWORD;
pub extern fn GetConsoleAliasesA(AliasBuffer: LPSTR, AliasBufferLength: DWORD, ExeName: LPSTR) -> DWORD;
pub extern fn GetConsoleAliasesW(AliasBuffer: LPWSTR, AliasBufferLength: DWORD, ExeName: LPWSTR) -> DWORD;
pub extern fn GetConsoleAliasExesA(ExeNameBuffer: LPSTR, ExeNameBufferLength: DWORD) -> DWORD;
pub extern fn GetConsoleAliasExesW(ExeNameBuffer: LPWSTR, ExeNameBufferLength: DWORD) -> DWORD;
pub const struct_tagVS_FIXEDFILEINFO = extern struct {
dwSignature: DWORD,
dwStrucVersion: DWORD,
dwFileVersionMS: DWORD,
dwFileVersionLS: DWORD,
dwProductVersionMS: DWORD,
dwProductVersionLS: DWORD,
dwFileFlagsMask: DWORD,
dwFileFlags: DWORD,
dwFileOS: DWORD,
dwFileType: DWORD,
dwFileSubtype: DWORD,
dwFileDateMS: DWORD,
dwFileDateLS: DWORD,
};
pub const VS_FIXEDFILEINFO = struct_tagVS_FIXEDFILEINFO;
pub extern fn VerFindFileA(uFlags: DWORD, szFileName: LPCSTR, szWinDir: LPCSTR, szAppDir: LPCSTR, szCurDir: LPSTR, puCurDirLen: PUINT, szDestDir: LPSTR, puDestDirLen: PUINT) -> DWORD;
pub extern fn VerFindFileW(uFlags: DWORD, szFileName: LPCWSTR, szWinDir: LPCWSTR, szAppDir: LPCWSTR, szCurDir: LPWSTR, puCurDirLen: PUINT, szDestDir: LPWSTR, puDestDirLen: PUINT) -> DWORD;
pub extern fn VerInstallFileA(uFlags: DWORD, szSrcFileName: LPCSTR, szDestFileName: LPCSTR, szSrcDir: LPCSTR, szDestDir: LPCSTR, szCurDir: LPCSTR, szTmpFile: LPSTR, puTmpFileLen: PUINT) -> DWORD;
pub extern fn VerInstallFileW(uFlags: DWORD, szSrcFileName: LPCWSTR, szDestFileName: LPCWSTR, szSrcDir: LPCWSTR, szDestDir: LPCWSTR, szCurDir: LPCWSTR, szTmpFile: LPWSTR, puTmpFileLen: PUINT) -> DWORD;
pub extern fn GetFileVersionInfoSizeA(lptstrFilename: LPCSTR, lpdwHandle: LPDWORD) -> DWORD;
pub extern fn GetFileVersionInfoSizeW(lptstrFilename: LPCWSTR, lpdwHandle: LPDWORD) -> DWORD;
pub extern fn GetFileVersionInfoA(lptstrFilename: LPCSTR, dwHandle: DWORD, dwLen: DWORD, lpData: LPVOID) -> BOOL;
pub extern fn GetFileVersionInfoW(lptstrFilename: LPCWSTR, dwHandle: DWORD, dwLen: DWORD, lpData: LPVOID) -> BOOL;
pub extern fn GetFileVersionInfoSizeExA(dwFlags: DWORD, lpwstrFilename: LPCSTR, lpdwHandle: LPDWORD) -> DWORD;
pub extern fn GetFileVersionInfoSizeExW(dwFlags: DWORD, lpwstrFilename: LPCWSTR, lpdwHandle: LPDWORD) -> DWORD;
pub extern fn GetFileVersionInfoExA(dwFlags: DWORD, lpwstrFilename: LPCSTR, dwHandle: DWORD, dwLen: DWORD, lpData: LPVOID) -> BOOL;
pub extern fn GetFileVersionInfoExW(dwFlags: DWORD, lpwstrFilename: LPCWSTR, dwHandle: DWORD, dwLen: DWORD, lpData: LPVOID) -> BOOL;
pub extern fn VerLanguageNameA(wLang: DWORD, szLang: LPSTR, cchLang: DWORD) -> DWORD;
pub extern fn VerLanguageNameW(wLang: DWORD, szLang: LPWSTR, cchLang: DWORD) -> DWORD;
pub extern fn VerQueryValueA(pBlock: LPCVOID, lpSubBlock: LPCSTR, lplpBuffer: ?&LPVOID, puLen: PUINT) -> BOOL;
pub extern fn VerQueryValueW(pBlock: LPCVOID, lpSubBlock: LPCWSTR, lplpBuffer: ?&LPVOID, puLen: PUINT) -> BOOL;
pub const REGSAM = ACCESS_MASK;
pub const struct_val_context = extern struct {
valuelen: c_int,
value_context: LPVOID,
val_buff_ptr: LPVOID,
};
pub const PVALCONTEXT = ?&struct_val_context;
pub const struct_pvalueA = extern struct {
pv_valuename: LPSTR,
pv_valuelen: c_int,
pv_value_context: LPVOID,
pv_type: DWORD,
};
pub const PVALUEA = struct_pvalueA;
pub const PPVALUEA = ?&struct_pvalueA;
pub const struct_pvalueW = extern struct {
pv_valuename: LPWSTR,
pv_valuelen: c_int,
pv_value_context: LPVOID,
pv_type: DWORD,
};
pub const PVALUEW = struct_pvalueW;
pub const PPVALUEW = ?&struct_pvalueW;
pub const PVALUE = PVALUEA;
pub const PPVALUE = PPVALUEA;
pub const QUERYHANDLER = extern fn(LPVOID, PVALCONTEXT, DWORD, LPVOID, ?&DWORD, DWORD) -> DWORD;
pub const PQUERYHANDLER = ?&QUERYHANDLER;
pub const struct_provider_info = extern struct {
pi_R0_1val: PQUERYHANDLER,
pi_R0_allvals: PQUERYHANDLER,
pi_R3_1val: PQUERYHANDLER,
pi_R3_allvals: PQUERYHANDLER,
pi_flags: DWORD,
pi_key_context: LPVOID,
};
pub const REG_PROVIDER = struct_provider_info;
pub const PPROVIDER = ?&struct_provider_info;
pub const struct_value_entA = extern struct {
ve_valuename: LPSTR,
ve_valuelen: DWORD,
ve_valueptr: DWORD_PTR,
ve_type: DWORD,
};
pub const VALENTA = struct_value_entA;
pub const PVALENTA = ?&struct_value_entA;
pub const struct_value_entW = extern struct {
ve_valuename: LPWSTR,
ve_valuelen: DWORD,
ve_valueptr: DWORD_PTR,
ve_type: DWORD,
};
pub const VALENTW = struct_value_entW;
pub const PVALENTW = ?&struct_value_entW;
pub const VALENT = VALENTA;
pub const PVALENT = PVALENTA;
pub const LSTATUS = LONG;
pub extern fn RegCloseKey(hKey: HKEY) -> LSTATUS;
pub extern fn RegOverridePredefKey(hKey: HKEY, hNewHKey: HKEY) -> LSTATUS;
pub extern fn RegOpenUserClassesRoot(hToken: HANDLE, dwOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY) -> LSTATUS;
pub extern fn RegOpenCurrentUser(samDesired: REGSAM, phkResult: PHKEY) -> LSTATUS;
pub extern fn RegDisablePredefinedCache() -> LSTATUS;
pub extern fn RegDisablePredefinedCacheEx() -> LSTATUS;
pub extern fn RegConnectRegistryA(lpMachineName: LPCSTR, hKey: HKEY, phkResult: PHKEY) -> LSTATUS;
pub extern fn RegConnectRegistryW(lpMachineName: LPCWSTR, hKey: HKEY, phkResult: PHKEY) -> LSTATUS;
pub extern fn RegConnectRegistryExA(lpMachineName: LPCSTR, hKey: HKEY, Flags: ULONG, phkResult: PHKEY) -> LSTATUS;
pub extern fn RegConnectRegistryExW(lpMachineName: LPCWSTR, hKey: HKEY, Flags: ULONG, phkResult: PHKEY) -> LSTATUS;
pub extern fn RegCreateKeyA(hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY) -> LSTATUS;
pub extern fn RegCreateKeyW(hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY) -> LSTATUS;
pub extern fn RegCreateKeyExA(hKey: HKEY, lpSubKey: LPCSTR, Reserved: DWORD, lpClass: LPSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD) -> LSTATUS;
pub extern fn RegCreateKeyExW(hKey: HKEY, lpSubKey: LPCWSTR, Reserved: DWORD, lpClass: LPWSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD) -> LSTATUS;
pub extern fn RegCreateKeyTransactedA(hKey: HKEY, lpSubKey: LPCSTR, Reserved: DWORD, lpClass: LPSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD, hTransaction: HANDLE, pExtendedParemeter: PVOID) -> LSTATUS;
pub extern fn RegCreateKeyTransactedW(hKey: HKEY, lpSubKey: LPCWSTR, Reserved: DWORD, lpClass: LPWSTR, dwOptions: DWORD, samDesired: REGSAM, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, phkResult: PHKEY, lpdwDisposition: LPDWORD, hTransaction: HANDLE, pExtendedParemeter: PVOID) -> LSTATUS;
pub extern fn RegDeleteKeyA(hKey: HKEY, lpSubKey: LPCSTR) -> LSTATUS;
pub extern fn RegDeleteKeyW(hKey: HKEY, lpSubKey: LPCWSTR) -> LSTATUS;
pub extern fn RegDeleteKeyExA(hKey: HKEY, lpSubKey: LPCSTR, samDesired: REGSAM, Reserved: DWORD) -> LSTATUS;
pub extern fn RegDeleteKeyExW(hKey: HKEY, lpSubKey: LPCWSTR, samDesired: REGSAM, Reserved: DWORD) -> LSTATUS;
pub extern fn RegDeleteKeyTransactedA(hKey: HKEY, lpSubKey: LPCSTR, samDesired: REGSAM, Reserved: DWORD, hTransaction: HANDLE, pExtendedParameter: PVOID) -> LSTATUS;
pub extern fn RegDeleteKeyTransactedW(hKey: HKEY, lpSubKey: LPCWSTR, samDesired: REGSAM, Reserved: DWORD, hTransaction: HANDLE, pExtendedParameter: PVOID) -> LSTATUS;
pub extern fn RegDisableReflectionKey(hBase: HKEY) -> LONG;
pub extern fn RegEnableReflectionKey(hBase: HKEY) -> LONG;
pub extern fn RegQueryReflectionKey(hBase: HKEY, bIsReflectionDisabled: ?&BOOL) -> LONG;
pub extern fn RegDeleteValueA(hKey: HKEY, lpValueName: LPCSTR) -> LSTATUS;
pub extern fn RegDeleteValueW(hKey: HKEY, lpValueName: LPCWSTR) -> LSTATUS;
pub extern fn RegEnumKeyA(hKey: HKEY, dwIndex: DWORD, lpName: LPSTR, cchName: DWORD) -> LSTATUS;
pub extern fn RegEnumKeyW(hKey: HKEY, dwIndex: DWORD, lpName: LPWSTR, cchName: DWORD) -> LSTATUS;
pub extern fn RegEnumKeyExA(hKey: HKEY, dwIndex: DWORD, lpName: LPSTR, lpcchName: LPDWORD, lpReserved: LPDWORD, lpClass: LPSTR, lpcchClass: LPDWORD, lpftLastWriteTime: PFILETIME) -> LSTATUS;
pub extern fn RegEnumKeyExW(hKey: HKEY, dwIndex: DWORD, lpName: LPWSTR, lpcchName: LPDWORD, lpReserved: LPDWORD, lpClass: LPWSTR, lpcchClass: LPDWORD, lpftLastWriteTime: PFILETIME) -> LSTATUS;
pub extern fn RegEnumValueA(hKey: HKEY, dwIndex: DWORD, lpValueName: LPSTR, lpcchValueName: LPDWORD, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD) -> LSTATUS;
pub extern fn RegEnumValueW(hKey: HKEY, dwIndex: DWORD, lpValueName: LPWSTR, lpcchValueName: LPDWORD, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD) -> LSTATUS;
pub extern fn RegFlushKey(hKey: HKEY) -> LSTATUS;
pub extern fn RegGetKeySecurity(hKey: HKEY, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR, lpcbSecurityDescriptor: LPDWORD) -> LSTATUS;
pub extern fn RegLoadKeyA(hKey: HKEY, lpSubKey: LPCSTR, lpFile: LPCSTR) -> LSTATUS;
pub extern fn RegLoadKeyW(hKey: HKEY, lpSubKey: LPCWSTR, lpFile: LPCWSTR) -> LSTATUS;
pub extern fn RegNotifyChangeKeyValue(hKey: HKEY, bWatchSubtree: BOOL, dwNotifyFilter: DWORD, hEvent: HANDLE, fAsynchronous: BOOL) -> LSTATUS;
pub extern fn RegOpenKeyA(hKey: HKEY, lpSubKey: LPCSTR, phkResult: PHKEY) -> LSTATUS;
pub extern fn RegOpenKeyW(hKey: HKEY, lpSubKey: LPCWSTR, phkResult: PHKEY) -> LSTATUS;
pub extern fn RegOpenKeyExA(hKey: HKEY, lpSubKey: LPCSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY) -> LSTATUS;
pub extern fn RegOpenKeyExW(hKey: HKEY, lpSubKey: LPCWSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY) -> LSTATUS;
pub extern fn RegOpenKeyTransactedA(hKey: HKEY, lpSubKey: LPCSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY, hTransaction: HANDLE, pExtendedParemeter: PVOID) -> LSTATUS;
pub extern fn RegOpenKeyTransactedW(hKey: HKEY, lpSubKey: LPCWSTR, ulOptions: DWORD, samDesired: REGSAM, phkResult: PHKEY, hTransaction: HANDLE, pExtendedParemeter: PVOID) -> LSTATUS;
pub extern fn RegQueryInfoKeyA(hKey: HKEY, lpClass: LPSTR, lpcchClass: LPDWORD, lpReserved: LPDWORD, lpcSubKeys: LPDWORD, lpcbMaxSubKeyLen: LPDWORD, lpcbMaxClassLen: LPDWORD, lpcValues: LPDWORD, lpcbMaxValueNameLen: LPDWORD, lpcbMaxValueLen: LPDWORD, lpcbSecurityDescriptor: LPDWORD, lpftLastWriteTime: PFILETIME) -> LSTATUS;
pub extern fn RegQueryInfoKeyW(hKey: HKEY, lpClass: LPWSTR, lpcchClass: LPDWORD, lpReserved: LPDWORD, lpcSubKeys: LPDWORD, lpcbMaxSubKeyLen: LPDWORD, lpcbMaxClassLen: LPDWORD, lpcValues: LPDWORD, lpcbMaxValueNameLen: LPDWORD, lpcbMaxValueLen: LPDWORD, lpcbSecurityDescriptor: LPDWORD, lpftLastWriteTime: PFILETIME) -> LSTATUS;
pub extern fn RegQueryValueA(hKey: HKEY, lpSubKey: LPCSTR, lpData: LPSTR, lpcbData: PLONG) -> LSTATUS;
pub extern fn RegQueryValueW(hKey: HKEY, lpSubKey: LPCWSTR, lpData: LPWSTR, lpcbData: PLONG) -> LSTATUS;
pub extern fn RegQueryMultipleValuesA(hKey: HKEY, val_list: PVALENTA, num_vals: DWORD, lpValueBuf: LPSTR, ldwTotsize: LPDWORD) -> LSTATUS;
pub extern fn RegQueryMultipleValuesW(hKey: HKEY, val_list: PVALENTW, num_vals: DWORD, lpValueBuf: LPWSTR, ldwTotsize: LPDWORD) -> LSTATUS;
pub extern fn RegQueryValueExA(hKey: HKEY, lpValueName: LPCSTR, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD) -> LSTATUS;
pub extern fn RegQueryValueExW(hKey: HKEY, lpValueName: LPCWSTR, lpReserved: LPDWORD, lpType: LPDWORD, lpData: LPBYTE, lpcbData: LPDWORD) -> LSTATUS;
pub extern fn RegReplaceKeyA(hKey: HKEY, lpSubKey: LPCSTR, lpNewFile: LPCSTR, lpOldFile: LPCSTR) -> LSTATUS;
pub extern fn RegReplaceKeyW(hKey: HKEY, lpSubKey: LPCWSTR, lpNewFile: LPCWSTR, lpOldFile: LPCWSTR) -> LSTATUS;
pub extern fn RegRestoreKeyA(hKey: HKEY, lpFile: LPCSTR, dwFlags: DWORD) -> LSTATUS;
pub extern fn RegRestoreKeyW(hKey: HKEY, lpFile: LPCWSTR, dwFlags: DWORD) -> LSTATUS;
pub extern fn RegRenameKey(hKey: HKEY, lpSubKeyName: LPCWSTR, lpNewKeyName: LPCWSTR) -> LSTATUS;
pub extern fn RegSaveKeyA(hKey: HKEY, lpFile: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> LSTATUS;
pub extern fn RegSaveKeyW(hKey: HKEY, lpFile: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES) -> LSTATUS;
pub extern fn RegSetKeySecurity(hKey: HKEY, SecurityInformation: SECURITY_INFORMATION, pSecurityDescriptor: PSECURITY_DESCRIPTOR) -> LSTATUS;
pub extern fn RegSetValueA(hKey: HKEY, lpSubKey: LPCSTR, dwType: DWORD, lpData: LPCSTR, cbData: DWORD) -> LSTATUS;
pub extern fn RegSetValueW(hKey: HKEY, lpSubKey: LPCWSTR, dwType: DWORD, lpData: LPCWSTR, cbData: DWORD) -> LSTATUS;
pub extern fn RegSetValueExA(hKey: HKEY, lpValueName: LPCSTR, Reserved: DWORD, dwType: DWORD, lpData: ?&const BYTE, cbData: DWORD) -> LSTATUS;
pub extern fn RegSetValueExW(hKey: HKEY, lpValueName: LPCWSTR, Reserved: DWORD, dwType: DWORD, lpData: ?&const BYTE, cbData: DWORD) -> LSTATUS;
pub extern fn RegUnLoadKeyA(hKey: HKEY, lpSubKey: LPCSTR) -> LSTATUS;
pub extern fn RegUnLoadKeyW(hKey: HKEY, lpSubKey: LPCWSTR) -> LSTATUS;
pub extern fn RegDeleteKeyValueA(hKey: HKEY, lpSubKey: LPCSTR, lpValueName: LPCSTR) -> LSTATUS;
pub extern fn RegDeleteKeyValueW(hKey: HKEY, lpSubKey: LPCWSTR, lpValueName: LPCWSTR) -> LSTATUS;
pub extern fn RegSetKeyValueA(hKey: HKEY, lpSubKey: LPCSTR, lpValueName: LPCSTR, dwType: DWORD, lpData: LPCVOID, cbData: DWORD) -> LSTATUS;
pub extern fn RegSetKeyValueW(hKey: HKEY, lpSubKey: LPCWSTR, lpValueName: LPCWSTR, dwType: DWORD, lpData: LPCVOID, cbData: DWORD) -> LSTATUS;
pub extern fn RegDeleteTreeA(hKey: HKEY, lpSubKey: LPCSTR) -> LSTATUS;
pub extern fn RegDeleteTreeW(hKey: HKEY, lpSubKey: LPCWSTR) -> LSTATUS;
pub extern fn RegCopyTreeA(hKeySrc: HKEY, lpSubKey: LPCSTR, hKeyDest: HKEY) -> LSTATUS;
pub extern fn RegGetValueA(hkey: HKEY, lpSubKey: LPCSTR, lpValue: LPCSTR, dwFlags: DWORD, pdwType: LPDWORD, pvData: PVOID, pcbData: LPDWORD) -> LSTATUS;
pub extern fn RegGetValueW(hkey: HKEY, lpSubKey: LPCWSTR, lpValue: LPCWSTR, dwFlags: DWORD, pdwType: LPDWORD, pvData: PVOID, pcbData: LPDWORD) -> LSTATUS;
pub extern fn RegCopyTreeW(hKeySrc: HKEY, lpSubKey: LPCWSTR, hKeyDest: HKEY) -> LSTATUS;
pub extern fn RegLoadMUIStringA(hKey: HKEY, pszValue: LPCSTR, pszOutBuf: LPSTR, cbOutBuf: DWORD, pcbData: LPDWORD, Flags: DWORD, pszDirectory: LPCSTR) -> LSTATUS;
pub extern fn RegLoadMUIStringW(hKey: HKEY, pszValue: LPCWSTR, pszOutBuf: LPWSTR, cbOutBuf: DWORD, pcbData: LPDWORD, Flags: DWORD, pszDirectory: LPCWSTR) -> LSTATUS;
pub extern fn RegLoadAppKeyA(lpFile: LPCSTR, phkResult: PHKEY, samDesired: REGSAM, dwOptions: DWORD, Reserved: DWORD) -> LSTATUS;
pub extern fn RegLoadAppKeyW(lpFile: LPCWSTR, phkResult: PHKEY, samDesired: REGSAM, dwOptions: DWORD, Reserved: DWORD) -> LSTATUS;
pub extern fn InitiateSystemShutdownA(lpMachineName: LPSTR, lpMessage: LPSTR, dwTimeout: DWORD, bForceAppsClosed: BOOL, bRebootAfterShutdown: BOOL) -> BOOL;
pub extern fn InitiateSystemShutdownW(lpMachineName: LPWSTR, lpMessage: LPWSTR, dwTimeout: DWORD, bForceAppsClosed: BOOL, bRebootAfterShutdown: BOOL) -> BOOL;
pub extern fn AbortSystemShutdownA(lpMachineName: LPSTR) -> BOOL;
pub extern fn AbortSystemShutdownW(lpMachineName: LPWSTR) -> BOOL;
pub extern fn InitiateSystemShutdownExA(lpMachineName: LPSTR, lpMessage: LPSTR, dwTimeout: DWORD, bForceAppsClosed: BOOL, bRebootAfterShutdown: BOOL, dwReason: DWORD) -> BOOL;
pub extern fn InitiateSystemShutdownExW(lpMachineName: LPWSTR, lpMessage: LPWSTR, dwTimeout: DWORD, bForceAppsClosed: BOOL, bRebootAfterShutdown: BOOL, dwReason: DWORD) -> BOOL;
pub extern fn InitiateShutdownA(lpMachineName: LPSTR, lpMessage: LPSTR, dwGracePeriod: DWORD, dwShutdownFlags: DWORD, dwReason: DWORD) -> DWORD;
pub extern fn InitiateShutdownW(lpMachineName: LPWSTR, lpMessage: LPWSTR, dwGracePeriod: DWORD, dwShutdownFlags: DWORD, dwReason: DWORD) -> DWORD;
pub extern fn CheckForHiberboot(pHiberboot: PBOOLEAN, bClearFlag: BOOLEAN) -> DWORD;
pub extern fn RegSaveKeyExA(hKey: HKEY, lpFile: LPCSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, Flags: DWORD) -> LSTATUS;
pub extern fn RegSaveKeyExW(hKey: HKEY, lpFile: LPCWSTR, lpSecurityAttributes: LPSECURITY_ATTRIBUTES, Flags: DWORD) -> LSTATUS;
pub const struct__NETRESOURCEA = extern struct {
dwScope: DWORD,
dwType: DWORD,
dwDisplayType: DWORD,
dwUsage: DWORD,
lpLocalName: LPSTR,
lpRemoteName: LPSTR,
lpComment: LPSTR,
lpProvider: LPSTR,
};
pub const NETRESOURCEA = struct__NETRESOURCEA;
pub const LPNETRESOURCEA = ?&struct__NETRESOURCEA;
pub const struct__NETRESOURCEW = extern struct {
dwScope: DWORD,
dwType: DWORD,
dwDisplayType: DWORD,
dwUsage: DWORD,
lpLocalName: LPWSTR,
lpRemoteName: LPWSTR,
lpComment: LPWSTR,
lpProvider: LPWSTR,
};
pub const NETRESOURCEW = struct__NETRESOURCEW;
pub const LPNETRESOURCEW = ?&struct__NETRESOURCEW;
pub const NETRESOURCE = NETRESOURCEA;
pub const LPNETRESOURCE = LPNETRESOURCEA;
pub extern fn WNetAddConnectionA(lpRemoteName: LPCSTR, lpPassword: LPCSTR, lpLocalName: LPCSTR) -> DWORD;
pub extern fn WNetAddConnectionW(lpRemoteName: LPCWSTR, lpPassword: LPCWSTR, lpLocalName: LPCWSTR) -> DWORD;
pub extern fn WNetAddConnection2A(lpNetResource: LPNETRESOURCEA, lpPassword: LPCSTR, lpUserName: LPCSTR, dwFlags: DWORD) -> DWORD;
pub extern fn WNetAddConnection2W(lpNetResource: LPNETRESOURCEW, lpPassword: LPCWSTR, lpUserName: LPCWSTR, dwFlags: DWORD) -> DWORD;
pub extern fn WNetAddConnection3A(hwndOwner: HWND, lpNetResource: LPNETRESOURCEA, lpPassword: LPCSTR, lpUserName: LPCSTR, dwFlags: DWORD) -> DWORD;
pub extern fn WNetAddConnection3W(hwndOwner: HWND, lpNetResource: LPNETRESOURCEW, lpPassword: LPCWSTR, lpUserName: LPCWSTR, dwFlags: DWORD) -> DWORD;
pub extern fn WNetCancelConnectionA(lpName: LPCSTR, fForce: BOOL) -> DWORD;
pub extern fn WNetCancelConnectionW(lpName: LPCWSTR, fForce: BOOL) -> DWORD;
pub extern fn WNetCancelConnection2A(lpName: LPCSTR, dwFlags: DWORD, fForce: BOOL) -> DWORD;
pub extern fn WNetCancelConnection2W(lpName: LPCWSTR, dwFlags: DWORD, fForce: BOOL) -> DWORD;
pub extern fn WNetGetConnectionA(lpLocalName: LPCSTR, lpRemoteName: LPSTR, lpnLength: LPDWORD) -> DWORD;
pub extern fn WNetGetConnectionW(lpLocalName: LPCWSTR, lpRemoteName: LPWSTR, lpnLength: LPDWORD) -> DWORD;
pub extern fn WNetRestoreSingleConnectionW(hwndParent: HWND, lpDevice: LPCWSTR, fUseUI: BOOL) -> DWORD;
pub extern fn WNetUseConnectionA(hwndOwner: HWND, lpNetResource: LPNETRESOURCEA, lpPassword: LPCSTR, lpUserId: LPCSTR, dwFlags: DWORD, lpAccessName: LPSTR, lpBufferSize: LPDWORD, lpResult: LPDWORD) -> DWORD;
pub extern fn WNetUseConnectionW(hwndOwner: HWND, lpNetResource: LPNETRESOURCEW, lpPassword: LPCWSTR, lpUserId: LPCWSTR, dwFlags: DWORD, lpAccessName: LPWSTR, lpBufferSize: LPDWORD, lpResult: LPDWORD) -> DWORD;
pub extern fn WNetConnectionDialog(hwnd: HWND, dwType: DWORD) -> DWORD;
pub extern fn WNetDisconnectDialog(hwnd: HWND, dwType: DWORD) -> DWORD;
pub const struct__CONNECTDLGSTRUCTA = extern struct {
cbStructure: DWORD,
hwndOwner: HWND,
lpConnRes: LPNETRESOURCEA,
dwFlags: DWORD,
dwDevNum: DWORD,
};
pub const CONNECTDLGSTRUCTA = struct__CONNECTDLGSTRUCTA;
pub const LPCONNECTDLGSTRUCTA = ?&struct__CONNECTDLGSTRUCTA;
pub const struct__CONNECTDLGSTRUCTW = extern struct {
cbStructure: DWORD,
hwndOwner: HWND,
lpConnRes: LPNETRESOURCEW,
dwFlags: DWORD,
dwDevNum: DWORD,
};
pub const CONNECTDLGSTRUCTW = struct__CONNECTDLGSTRUCTW;
pub const LPCONNECTDLGSTRUCTW = ?&struct__CONNECTDLGSTRUCTW;
pub const CONNECTDLGSTRUCT = CONNECTDLGSTRUCTA;
pub const LPCONNECTDLGSTRUCT = LPCONNECTDLGSTRUCTA;
pub extern fn WNetConnectionDialog1A(lpConnDlgStruct: LPCONNECTDLGSTRUCTA) -> DWORD;
pub extern fn WNetConnectionDialog1W(lpConnDlgStruct: LPCONNECTDLGSTRUCTW) -> DWORD;
pub const struct__DISCDLGSTRUCTA = extern struct {
cbStructure: DWORD,
hwndOwner: HWND,
lpLocalName: LPSTR,
lpRemoteName: LPSTR,
dwFlags: DWORD,
};
pub const DISCDLGSTRUCTA = struct__DISCDLGSTRUCTA;
pub const LPDISCDLGSTRUCTA = ?&struct__DISCDLGSTRUCTA;
pub const struct__DISCDLGSTRUCTW = extern struct {
cbStructure: DWORD,
hwndOwner: HWND,
lpLocalName: LPWSTR,
lpRemoteName: LPWSTR,
dwFlags: DWORD,
};
pub const DISCDLGSTRUCTW = struct__DISCDLGSTRUCTW;
pub const LPDISCDLGSTRUCTW = ?&struct__DISCDLGSTRUCTW;
pub const DISCDLGSTRUCT = DISCDLGSTRUCTA;
pub const LPDISCDLGSTRUCT = LPDISCDLGSTRUCTA;
pub extern fn WNetDisconnectDialog1A(lpConnDlgStruct: LPDISCDLGSTRUCTA) -> DWORD;
pub extern fn WNetDisconnectDialog1W(lpConnDlgStruct: LPDISCDLGSTRUCTW) -> DWORD;
pub extern fn WNetOpenEnumA(dwScope: DWORD, dwType: DWORD, dwUsage: DWORD, lpNetResource: LPNETRESOURCEA, lphEnum: LPHANDLE) -> DWORD;
pub extern fn WNetOpenEnumW(dwScope: DWORD, dwType: DWORD, dwUsage: DWORD, lpNetResource: LPNETRESOURCEW, lphEnum: LPHANDLE) -> DWORD;
pub extern fn WNetEnumResourceA(hEnum: HANDLE, lpcCount: LPDWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD) -> DWORD;
pub extern fn WNetEnumResourceW(hEnum: HANDLE, lpcCount: LPDWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD) -> DWORD;
pub extern fn WNetCloseEnum(hEnum: HANDLE) -> DWORD;
pub extern fn WNetGetResourceParentA(lpNetResource: LPNETRESOURCEA, lpBuffer: LPVOID, lpcbBuffer: LPDWORD) -> DWORD;
pub extern fn WNetGetResourceParentW(lpNetResource: LPNETRESOURCEW, lpBuffer: LPVOID, lpcbBuffer: LPDWORD) -> DWORD;
pub extern fn WNetGetResourceInformationA(lpNetResource: LPNETRESOURCEA, lpBuffer: LPVOID, lpcbBuffer: LPDWORD, lplpSystem: ?&LPSTR) -> DWORD;
pub extern fn WNetGetResourceInformationW(lpNetResource: LPNETRESOURCEW, lpBuffer: LPVOID, lpcbBuffer: LPDWORD, lplpSystem: ?&LPWSTR) -> DWORD;
pub const struct__UNIVERSAL_NAME_INFOA = extern struct {
lpUniversalName: LPSTR,
};
pub const UNIVERSAL_NAME_INFOA = struct__UNIVERSAL_NAME_INFOA;
pub const LPUNIVERSAL_NAME_INFOA = ?&struct__UNIVERSAL_NAME_INFOA;
pub const struct__UNIVERSAL_NAME_INFOW = extern struct {
lpUniversalName: LPWSTR,
};
pub const UNIVERSAL_NAME_INFOW = struct__UNIVERSAL_NAME_INFOW;
pub const LPUNIVERSAL_NAME_INFOW = ?&struct__UNIVERSAL_NAME_INFOW;
pub const UNIVERSAL_NAME_INFO = UNIVERSAL_NAME_INFOA;
pub const LPUNIVERSAL_NAME_INFO = LPUNIVERSAL_NAME_INFOA;
pub const struct__REMOTE_NAME_INFOA = extern struct {
lpUniversalName: LPSTR,
lpConnectionName: LPSTR,
lpRemainingPath: LPSTR,
};
pub const REMOTE_NAME_INFOA = struct__REMOTE_NAME_INFOA;
pub const LPREMOTE_NAME_INFOA = ?&struct__REMOTE_NAME_INFOA;
pub const struct__REMOTE_NAME_INFOW = extern struct {
lpUniversalName: LPWSTR,
lpConnectionName: LPWSTR,
lpRemainingPath: LPWSTR,
};
pub const REMOTE_NAME_INFOW = struct__REMOTE_NAME_INFOW;
pub const LPREMOTE_NAME_INFOW = ?&struct__REMOTE_NAME_INFOW;
pub const REMOTE_NAME_INFO = REMOTE_NAME_INFOA;
pub const LPREMOTE_NAME_INFO = LPREMOTE_NAME_INFOA;
pub extern fn WNetGetUniversalNameA(lpLocalPath: LPCSTR, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD) -> DWORD;
pub extern fn WNetGetUniversalNameW(lpLocalPath: LPCWSTR, dwInfoLevel: DWORD, lpBuffer: LPVOID, lpBufferSize: LPDWORD) -> DWORD;
pub extern fn WNetGetUserA(lpName: LPCSTR, lpUserName: LPSTR, lpnLength: LPDWORD) -> DWORD;
pub extern fn WNetGetUserW(lpName: LPCWSTR, lpUserName: LPWSTR, lpnLength: LPDWORD) -> DWORD;
pub extern fn WNetGetProviderNameA(dwNetType: DWORD, lpProviderName: LPSTR, lpBufferSize: LPDWORD) -> DWORD;
pub extern fn WNetGetProviderNameW(dwNetType: DWORD, lpProviderName: LPWSTR, lpBufferSize: LPDWORD) -> DWORD;
pub const struct__NETINFOSTRUCT = extern struct {
cbStructure: DWORD,
dwProviderVersion: DWORD,
dwStatus: DWORD,
dwCharacteristics: DWORD,
dwHandle: ULONG_PTR,
wNetType: WORD,
dwPrinters: DWORD,
dwDrives: DWORD,
};
pub const NETINFOSTRUCT = struct__NETINFOSTRUCT;
pub const LPNETINFOSTRUCT = ?&struct__NETINFOSTRUCT;
pub extern fn WNetGetNetworkInformationA(lpProvider: LPCSTR, lpNetInfoStruct: LPNETINFOSTRUCT) -> DWORD;
pub extern fn WNetGetNetworkInformationW(lpProvider: LPCWSTR, lpNetInfoStruct: LPNETINFOSTRUCT) -> DWORD;
pub extern fn WNetGetLastErrorA(lpError: LPDWORD, lpErrorBuf: LPSTR, nErrorBufSize: DWORD, lpNameBuf: LPSTR, nNameBufSize: DWORD) -> DWORD;
pub extern fn WNetGetLastErrorW(lpError: LPDWORD, lpErrorBuf: LPWSTR, nErrorBufSize: DWORD, lpNameBuf: LPWSTR, nNameBufSize: DWORD) -> DWORD;
pub const struct__NETCONNECTINFOSTRUCT = extern struct {
cbStructure: DWORD,
dwFlags: DWORD,
dwSpeed: DWORD,
dwDelay: DWORD,
dwOptDataSize: DWORD,
};
pub const NETCONNECTINFOSTRUCT = struct__NETCONNECTINFOSTRUCT;
pub const LPNETCONNECTINFOSTRUCT = ?&struct__NETCONNECTINFOSTRUCT;
pub extern fn MultinetGetConnectionPerformanceA(lpNetResource: LPNETRESOURCEA, lpNetConnectInfoStruct: LPNETCONNECTINFOSTRUCT) -> DWORD;
pub extern fn MultinetGetConnectionPerformanceW(lpNetResource: LPNETRESOURCEW, lpNetConnectInfoStruct: LPNETCONNECTINFOSTRUCT) -> DWORD;
pub const DDEACK = @OpaqueType();
pub const DDEADVISE = @OpaqueType();
pub const DDEDATA = @OpaqueType();
pub const DDEPOKE = @OpaqueType();
pub const DDELN = @OpaqueType();
pub const DDEUP = @OpaqueType();
pub extern fn DdeSetQualityOfService(hwndClient: HWND, pqosNew: ?&const SECURITY_QUALITY_OF_SERVICE, pqosPrev: PSECURITY_QUALITY_OF_SERVICE) -> BOOL;
pub extern fn ImpersonateDdeClientWindow(hWndClient: HWND, hWndServer: HWND) -> BOOL;
pub extern fn PackDDElParam(msg: UINT, uiLo: UINT_PTR, uiHi: UINT_PTR) -> LPARAM;
pub extern fn UnpackDDElParam(msg: UINT, lParam: LPARAM, puiLo: PUINT_PTR, puiHi: PUINT_PTR) -> BOOL;
pub extern fn FreeDDElParam(msg: UINT, lParam: LPARAM) -> BOOL;
pub extern fn ReuseDDElParam(lParam: LPARAM, msgIn: UINT, msgOut: UINT, uiLo: UINT_PTR, uiHi: UINT_PTR) -> LPARAM;
pub const struct_HCONVLIST__ = extern struct {
unused: c_int,
};
pub const HCONVLIST = ?&struct_HCONVLIST__;
pub const struct_HCONV__ = extern struct {
unused: c_int,
};
pub const HCONV = ?&struct_HCONV__;
pub const struct_HSZ__ = extern struct {
unused: c_int,
};
pub const HSZ = ?&struct_HSZ__;
pub const struct_HDDEDATA__ = extern struct {
unused: c_int,
};
pub const HDDEDATA = ?&struct_HDDEDATA__;
pub const struct_tagHSZPAIR = extern struct {
hszSvc: HSZ,
hszTopic: HSZ,
};
pub const HSZPAIR = struct_tagHSZPAIR;
pub const PHSZPAIR = ?&struct_tagHSZPAIR;
pub const struct_tagCONVCONTEXT = extern struct {
cb: UINT,
wFlags: UINT,
wCountryID: UINT,
iCodePage: c_int,
dwLangID: DWORD,
dwSecurity: DWORD,
qos: SECURITY_QUALITY_OF_SERVICE,
};
pub const CONVCONTEXT = struct_tagCONVCONTEXT;
pub const PCONVCONTEXT = ?&struct_tagCONVCONTEXT;
pub const struct_tagCONVINFO = extern struct {
cb: DWORD,
hUser: DWORD_PTR,
hConvPartner: HCONV,
hszSvcPartner: HSZ,
hszServiceReq: HSZ,
hszTopic: HSZ,
hszItem: HSZ,
wFmt: UINT,
wType: UINT,
wStatus: UINT,
wConvst: UINT,
wLastError: UINT,
hConvList: HCONVLIST,
ConvCtxt: CONVCONTEXT,
hwnd: HWND,
hwndPartner: HWND,
};
pub const CONVINFO = struct_tagCONVINFO;
pub const PCONVINFO = ?&struct_tagCONVINFO;
pub const FNCALLBACK = extern fn(UINT, UINT, HCONV, HSZ, HSZ, HDDEDATA, ULONG_PTR, ULONG_PTR) -> HDDEDATA;
pub const PFNCALLBACK = ?extern fn(UINT, UINT, HCONV, HSZ, HSZ, HDDEDATA, ULONG_PTR, ULONG_PTR) -> HDDEDATA;
pub extern fn DdeInitializeA(pidInst: LPDWORD, pfnCallback: PFNCALLBACK, afCmd: DWORD, ulRes: DWORD) -> UINT;
pub extern fn DdeInitializeW(pidInst: LPDWORD, pfnCallback: PFNCALLBACK, afCmd: DWORD, ulRes: DWORD) -> UINT;
pub extern fn DdeUninitialize(idInst: DWORD) -> BOOL;
pub extern fn DdeConnectList(idInst: DWORD, hszService: HSZ, hszTopic: HSZ, hConvList: HCONVLIST, pCC: PCONVCONTEXT) -> HCONVLIST;
pub extern fn DdeQueryNextServer(hConvList: HCONVLIST, hConvPrev: HCONV) -> HCONV;
pub extern fn DdeDisconnectList(hConvList: HCONVLIST) -> BOOL;
pub extern fn DdeConnect(idInst: DWORD, hszService: HSZ, hszTopic: HSZ, pCC: PCONVCONTEXT) -> HCONV;
pub extern fn DdeDisconnect(hConv: HCONV) -> BOOL;
pub extern fn DdeReconnect(hConv: HCONV) -> HCONV;
pub extern fn DdeQueryConvInfo(hConv: HCONV, idTransaction: DWORD, pConvInfo: PCONVINFO) -> UINT;
pub extern fn DdeSetUserHandle(hConv: HCONV, id: DWORD, hUser: DWORD_PTR) -> BOOL;
pub extern fn DdeAbandonTransaction(idInst: DWORD, hConv: HCONV, idTransaction: DWORD) -> BOOL;
pub extern fn DdePostAdvise(idInst: DWORD, hszTopic: HSZ, hszItem: HSZ) -> BOOL;
pub extern fn DdeEnableCallback(idInst: DWORD, hConv: HCONV, wCmd: UINT) -> BOOL;
pub extern fn DdeImpersonateClient(hConv: HCONV) -> BOOL;
pub extern fn DdeNameService(idInst: DWORD, hsz1: HSZ, hsz2: HSZ, afCmd: UINT) -> HDDEDATA;
pub extern fn DdeClientTransaction(pData: LPBYTE, cbData: DWORD, hConv: HCONV, hszItem: HSZ, wFmt: UINT, wType: UINT, dwTimeout: DWORD, pdwResult: LPDWORD) -> HDDEDATA;
pub extern fn DdeCreateDataHandle(idInst: DWORD, pSrc: LPBYTE, cb: DWORD, cbOff: DWORD, hszItem: HSZ, wFmt: UINT, afCmd: UINT) -> HDDEDATA;
pub extern fn DdeAddData(hData: HDDEDATA, pSrc: LPBYTE, cb: DWORD, cbOff: DWORD) -> HDDEDATA;
pub extern fn DdeGetData(hData: HDDEDATA, pDst: LPBYTE, cbMax: DWORD, cbOff: DWORD) -> DWORD;
pub extern fn DdeAccessData(hData: HDDEDATA, pcbDataSize: LPDWORD) -> LPBYTE;
pub extern fn DdeUnaccessData(hData: HDDEDATA) -> BOOL;
pub extern fn DdeFreeDataHandle(hData: HDDEDATA) -> BOOL;
pub extern fn DdeGetLastError(idInst: DWORD) -> UINT;
pub extern fn DdeCreateStringHandleA(idInst: DWORD, psz: LPCSTR, iCodePage: c_int) -> HSZ;
pub extern fn DdeCreateStringHandleW(idInst: DWORD, psz: LPCWSTR, iCodePage: c_int) -> HSZ;
pub extern fn DdeQueryStringA(idInst: DWORD, hsz: HSZ, psz: LPSTR, cchMax: DWORD, iCodePage: c_int) -> DWORD;
pub extern fn DdeQueryStringW(idInst: DWORD, hsz: HSZ, psz: LPWSTR, cchMax: DWORD, iCodePage: c_int) -> DWORD;
pub extern fn DdeFreeStringHandle(idInst: DWORD, hsz: HSZ) -> BOOL;
pub extern fn DdeKeepStringHandle(idInst: DWORD, hsz: HSZ) -> BOOL;
pub extern fn DdeCmpStringHandles(hsz1: HSZ, hsz2: HSZ) -> c_int;
pub const struct_tagDDEML_MSG_HOOK_DATA = extern struct {
uiLo: UINT_PTR,
uiHi: UINT_PTR,
cbData: DWORD,
Data: [8]DWORD,
};
pub const DDEML_MSG_HOOK_DATA = struct_tagDDEML_MSG_HOOK_DATA;
pub const PDDEML_MSG_HOOK_DATA = ?&struct_tagDDEML_MSG_HOOK_DATA;
pub const struct_tagMONMSGSTRUCT = extern struct {
cb: UINT,
hwndTo: HWND,
dwTime: DWORD,
hTask: HANDLE,
wMsg: UINT,
wParam: WPARAM,
lParam: LPARAM,
dmhd: DDEML_MSG_HOOK_DATA,
};
pub const MONMSGSTRUCT = struct_tagMONMSGSTRUCT;
pub const PMONMSGSTRUCT = ?&struct_tagMONMSGSTRUCT;
pub const struct_tagMONCBSTRUCT = extern struct {
cb: UINT,
dwTime: DWORD,
hTask: HANDLE,
dwRet: DWORD,
wType: UINT,
wFmt: UINT,
hConv: HCONV,
hsz1: HSZ,
hsz2: HSZ,
hData: HDDEDATA,
dwData1: ULONG_PTR,
dwData2: ULONG_PTR,
cc: CONVCONTEXT,
cbData: DWORD,
Data: [8]DWORD,
};
pub const MONCBSTRUCT = struct_tagMONCBSTRUCT;
pub const PMONCBSTRUCT = ?&struct_tagMONCBSTRUCT;
pub const struct_tagMONHSZSTRUCTA = extern struct {
cb: UINT,
fsAction: BOOL,
dwTime: DWORD,
hsz: HSZ,
hTask: HANDLE,
str: [1]CHAR,
};
pub const MONHSZSTRUCTA = struct_tagMONHSZSTRUCTA;
pub const PMONHSZSTRUCTA = ?&struct_tagMONHSZSTRUCTA;
pub const struct_tagMONHSZSTRUCTW = extern struct {
cb: UINT,
fsAction: BOOL,
dwTime: DWORD,
hsz: HSZ,
hTask: HANDLE,
str: [1]WCHAR,
};
pub const MONHSZSTRUCTW = struct_tagMONHSZSTRUCTW;
pub const PMONHSZSTRUCTW = ?&struct_tagMONHSZSTRUCTW;
pub const MONHSZSTRUCT = MONHSZSTRUCTA;
pub const PMONHSZSTRUCT = PMONHSZSTRUCTA;
pub const struct_tagMONERRSTRUCT = extern struct {
cb: UINT,
wLastError: UINT,
dwTime: DWORD,
hTask: HANDLE,
};
pub const MONERRSTRUCT = struct_tagMONERRSTRUCT;
pub const PMONERRSTRUCT = ?&struct_tagMONERRSTRUCT;
pub const struct_tagMONLINKSTRUCT = extern struct {
cb: UINT,
dwTime: DWORD,
hTask: HANDLE,
fEstablished: BOOL,
fNoData: BOOL,
hszSvc: HSZ,
hszTopic: HSZ,
hszItem: HSZ,
wFmt: UINT,
fServer: BOOL,
hConvServer: HCONV,
hConvClient: HCONV,
};
pub const MONLINKSTRUCT = struct_tagMONLINKSTRUCT;
pub const PMONLINKSTRUCT = ?&struct_tagMONLINKSTRUCT;
pub const struct_tagMONCONVSTRUCT = extern struct {
cb: UINT,
fConnect: BOOL,
dwTime: DWORD,
hTask: HANDLE,
hszSvc: HSZ,
hszTopic: HSZ,
hConvClient: HCONV,
hConvServer: HCONV,
};
pub const MONCONVSTRUCT = struct_tagMONCONVSTRUCT;
pub const PMONCONVSTRUCT = ?&struct_tagMONCONVSTRUCT;
pub const struct_tagCRGB = extern struct {
bRed: BYTE,
bGreen: BYTE,
bBlue: BYTE,
bExtra: BYTE,
};
pub const CRGB = struct_tagCRGB;
pub extern fn LZStart() -> INT;
pub extern fn LZDone();
pub extern fn CopyLZFile(hfSource: INT, hfDest: INT) -> LONG;
pub extern fn LZCopy(hfSource: INT, hfDest: INT) -> LONG;
pub extern fn LZInit(hfSource: INT) -> INT;
pub extern fn GetExpandedNameA(lpszSource: LPSTR, lpszBuffer: LPSTR) -> INT;
pub extern fn GetExpandedNameW(lpszSource: LPWSTR, lpszBuffer: LPWSTR) -> INT;
pub extern fn LZOpenFileA(lpFileName: LPSTR, lpReOpenBuf: LPOFSTRUCT, wStyle: WORD) -> INT;
pub extern fn LZOpenFileW(lpFileName: LPWSTR, lpReOpenBuf: LPOFSTRUCT, wStyle: WORD) -> INT;
pub extern fn LZSeek(hFile: INT, lOffset: LONG, iOrigin: INT) -> LONG;
pub extern fn LZRead(hFile: INT, lpBuffer: ?&CHAR, cbRead: INT) -> INT;
pub extern fn LZClose(hFile: INT);
pub const MMVERSION = UINT;
pub const MMRESULT = UINT;
pub const LPUINT = ?&UINT;
pub const struct_mmtime_tag = @OpaqueType();
pub const MMTIME = struct_mmtime_tag;
pub const PMMTIME = ?&struct_mmtime_tag;
pub const NPMMTIME = ?&struct_mmtime_tag;
pub const LPMMTIME = ?&struct_mmtime_tag;
pub const struct_HDRVR__ = extern struct {
unused: c_int,
};
pub const HDRVR = ?&struct_HDRVR__;
pub const DRVCALLBACK = extern fn(HDRVR, UINT, DWORD_PTR, DWORD_PTR, DWORD_PTR);
pub const LPDRVCALLBACK = ?&DRVCALLBACK;
pub const PDRVCALLBACK = ?&DRVCALLBACK;
pub const MCIERROR = DWORD;
pub const MCIDEVICEID = UINT;
pub const YIELDPROC = ?extern fn(MCIDEVICEID, DWORD) -> UINT;
pub extern fn mciSendCommandA(mciId: MCIDEVICEID, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR) -> MCIERROR;
pub extern fn mciSendCommandW(mciId: MCIDEVICEID, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR) -> MCIERROR;
pub extern fn mciSendStringA(lpstrCommand: LPCSTR, lpstrReturnString: LPSTR, uReturnLength: UINT, hwndCallback: HWND) -> MCIERROR;
pub extern fn mciSendStringW(lpstrCommand: LPCWSTR, lpstrReturnString: LPWSTR, uReturnLength: UINT, hwndCallback: HWND) -> MCIERROR;
pub extern fn mciGetDeviceIDA(pszDevice: LPCSTR) -> MCIDEVICEID;
pub extern fn mciGetDeviceIDW(pszDevice: LPCWSTR) -> MCIDEVICEID;
pub extern fn mciGetDeviceIDFromElementIDA(dwElementID: DWORD, lpstrType: LPCSTR) -> MCIDEVICEID;
pub extern fn mciGetDeviceIDFromElementIDW(dwElementID: DWORD, lpstrType: LPCWSTR) -> MCIDEVICEID;
pub extern fn mciGetErrorStringA(mcierr: MCIERROR, pszText: LPSTR, cchText: UINT) -> BOOL;
pub extern fn mciGetErrorStringW(mcierr: MCIERROR, pszText: LPWSTR, cchText: UINT) -> BOOL;
pub extern fn mciSetYieldProc(mciId: MCIDEVICEID, fpYieldProc: YIELDPROC, dwYieldData: DWORD) -> BOOL;
pub extern fn mciGetCreatorTask(mciId: MCIDEVICEID) -> HTASK;
pub extern fn mciGetYieldProc(mciId: MCIDEVICEID, pdwYieldData: LPDWORD) -> YIELDPROC;
pub const struct_tagMCI_GENERIC_PARMS = extern struct {
dwCallback: DWORD_PTR,
};
pub const MCI_GENERIC_PARMS = struct_tagMCI_GENERIC_PARMS;
pub const PMCI_GENERIC_PARMS = ?&struct_tagMCI_GENERIC_PARMS;
pub const LPMCI_GENERIC_PARMS = ?&struct_tagMCI_GENERIC_PARMS;
pub const struct_tagMCI_OPEN_PARMSA = extern struct {
dwCallback: DWORD_PTR,
wDeviceID: MCIDEVICEID,
lpstrDeviceType: LPCSTR,
lpstrElementName: LPCSTR,
lpstrAlias: LPCSTR,
};
pub const MCI_OPEN_PARMSA = struct_tagMCI_OPEN_PARMSA;
pub const PMCI_OPEN_PARMSA = ?&struct_tagMCI_OPEN_PARMSA;
pub const LPMCI_OPEN_PARMSA = ?&struct_tagMCI_OPEN_PARMSA;
pub const struct_tagMCI_OPEN_PARMSW = extern struct {
dwCallback: DWORD_PTR,
wDeviceID: MCIDEVICEID,
lpstrDeviceType: LPCWSTR,
lpstrElementName: LPCWSTR,
lpstrAlias: LPCWSTR,
};
pub const MCI_OPEN_PARMSW = struct_tagMCI_OPEN_PARMSW;
pub const PMCI_OPEN_PARMSW = ?&struct_tagMCI_OPEN_PARMSW;
pub const LPMCI_OPEN_PARMSW = ?&struct_tagMCI_OPEN_PARMSW;
pub const MCI_OPEN_PARMS = MCI_OPEN_PARMSA;
pub const PMCI_OPEN_PARMS = PMCI_OPEN_PARMSA;
pub const LPMCI_OPEN_PARMS = LPMCI_OPEN_PARMSA;
pub const struct_tagMCI_PLAY_PARMS = extern struct {
dwCallback: DWORD_PTR,
dwFrom: DWORD,
dwTo: DWORD,
};
pub const MCI_PLAY_PARMS = struct_tagMCI_PLAY_PARMS;
pub const PMCI_PLAY_PARMS = ?&struct_tagMCI_PLAY_PARMS;
pub const LPMCI_PLAY_PARMS = ?&struct_tagMCI_PLAY_PARMS;
pub const struct_tagMCI_SEEK_PARMS = extern struct {
dwCallback: DWORD_PTR,
dwTo: DWORD,
};
pub const MCI_SEEK_PARMS = struct_tagMCI_SEEK_PARMS;
pub const PMCI_SEEK_PARMS = ?&struct_tagMCI_SEEK_PARMS;
pub const LPMCI_SEEK_PARMS = ?&struct_tagMCI_SEEK_PARMS;
pub const struct_tagMCI_STATUS_PARMS = extern struct {
dwCallback: DWORD_PTR,
dwReturn: DWORD_PTR,
dwItem: DWORD,
dwTrack: DWORD,
};
pub const MCI_STATUS_PARMS = struct_tagMCI_STATUS_PARMS;
pub const PMCI_STATUS_PARMS = ?&struct_tagMCI_STATUS_PARMS;
pub const LPMCI_STATUS_PARMS = ?&struct_tagMCI_STATUS_PARMS;
pub const struct_tagMCI_INFO_PARMSA = extern struct {
dwCallback: DWORD_PTR,
lpstrReturn: LPSTR,
dwRetSize: DWORD,
};
pub const MCI_INFO_PARMSA = struct_tagMCI_INFO_PARMSA;
pub const LPMCI_INFO_PARMSA = ?&struct_tagMCI_INFO_PARMSA;
pub const struct_tagMCI_INFO_PARMSW = extern struct {
dwCallback: DWORD_PTR,
lpstrReturn: LPWSTR,
dwRetSize: DWORD,
};
pub const MCI_INFO_PARMSW = struct_tagMCI_INFO_PARMSW;
pub const LPMCI_INFO_PARMSW = ?&struct_tagMCI_INFO_PARMSW;
pub const MCI_INFO_PARMS = MCI_INFO_PARMSA;
pub const LPMCI_INFO_PARMS = LPMCI_INFO_PARMSA;
pub const struct_tagMCI_GETDEVCAPS_PARMS = extern struct {
dwCallback: DWORD_PTR,
dwReturn: DWORD,
dwItem: DWORD,
};
pub const MCI_GETDEVCAPS_PARMS = struct_tagMCI_GETDEVCAPS_PARMS;
pub const PMCI_GETDEVCAPS_PARMS = ?&struct_tagMCI_GETDEVCAPS_PARMS;
pub const LPMCI_GETDEVCAPS_PARMS = ?&struct_tagMCI_GETDEVCAPS_PARMS;
pub const struct_tagMCI_SYSINFO_PARMSA = extern struct {
dwCallback: DWORD_PTR,
lpstrReturn: LPSTR,
dwRetSize: DWORD,
dwNumber: DWORD,
wDeviceType: UINT,
};
pub const MCI_SYSINFO_PARMSA = struct_tagMCI_SYSINFO_PARMSA;
pub const PMCI_SYSINFO_PARMSA = ?&struct_tagMCI_SYSINFO_PARMSA;
pub const LPMCI_SYSINFO_PARMSA = ?&struct_tagMCI_SYSINFO_PARMSA;
pub const struct_tagMCI_SYSINFO_PARMSW = extern struct {
dwCallback: DWORD_PTR,
lpstrReturn: LPWSTR,
dwRetSize: DWORD,
dwNumber: DWORD,
wDeviceType: UINT,
};
pub const MCI_SYSINFO_PARMSW = struct_tagMCI_SYSINFO_PARMSW;
pub const PMCI_SYSINFO_PARMSW = ?&struct_tagMCI_SYSINFO_PARMSW;
pub const LPMCI_SYSINFO_PARMSW = ?&struct_tagMCI_SYSINFO_PARMSW;
pub const MCI_SYSINFO_PARMS = MCI_SYSINFO_PARMSA;
pub const PMCI_SYSINFO_PARMS = PMCI_SYSINFO_PARMSA;
pub const LPMCI_SYSINFO_PARMS = LPMCI_SYSINFO_PARMSA;
pub const struct_tagMCI_SET_PARMS = extern struct {
dwCallback: DWORD_PTR,
dwTimeFormat: DWORD,
dwAudio: DWORD,
};
pub const MCI_SET_PARMS = struct_tagMCI_SET_PARMS;
pub const PMCI_SET_PARMS = ?&struct_tagMCI_SET_PARMS;
pub const LPMCI_SET_PARMS = ?&struct_tagMCI_SET_PARMS;
pub const struct_tagMCI_BREAK_PARMS = extern struct {
dwCallback: DWORD_PTR,
nVirtKey: c_int,
hwndBreak: HWND,
};
pub const MCI_BREAK_PARMS = struct_tagMCI_BREAK_PARMS;
pub const PMCI_BREAK_PARMS = ?&struct_tagMCI_BREAK_PARMS;
pub const LPMCI_BREAK_PARMS = ?&struct_tagMCI_BREAK_PARMS;
pub const struct_tagMCI_SAVE_PARMSA = extern struct {
dwCallback: DWORD_PTR,
lpfilename: LPCSTR,
};
pub const MCI_SAVE_PARMSA = struct_tagMCI_SAVE_PARMSA;
pub const PMCI_SAVE_PARMSA = ?&struct_tagMCI_SAVE_PARMSA;
pub const LPMCI_SAVE_PARMSA = ?&struct_tagMCI_SAVE_PARMSA;
pub const struct_tagMCI_SAVE_PARMSW = extern struct {
dwCallback: DWORD_PTR,
lpfilename: LPCWSTR,
};
pub const MCI_SAVE_PARMSW = struct_tagMCI_SAVE_PARMSW;
pub const PMCI_SAVE_PARMSW = ?&struct_tagMCI_SAVE_PARMSW;
pub const LPMCI_SAVE_PARMSW = ?&struct_tagMCI_SAVE_PARMSW;
pub const MCI_SAVE_PARMS = MCI_SAVE_PARMSA;
pub const PMCI_SAVE_PARMS = PMCI_SAVE_PARMSA;
pub const LPMCI_SAVE_PARMS = LPMCI_SAVE_PARMSA;
pub const struct_tagMCI_LOAD_PARMSA = extern struct {
dwCallback: DWORD_PTR,
lpfilename: LPCSTR,
};
pub const MCI_LOAD_PARMSA = struct_tagMCI_LOAD_PARMSA;
pub const PMCI_LOAD_PARMSA = ?&struct_tagMCI_LOAD_PARMSA;
pub const LPMCI_LOAD_PARMSA = ?&struct_tagMCI_LOAD_PARMSA;
pub const struct_tagMCI_LOAD_PARMSW = extern struct {
dwCallback: DWORD_PTR,
lpfilename: LPCWSTR,
};
pub const MCI_LOAD_PARMSW = struct_tagMCI_LOAD_PARMSW;
pub const PMCI_LOAD_PARMSW = ?&struct_tagMCI_LOAD_PARMSW;
pub const LPMCI_LOAD_PARMSW = ?&struct_tagMCI_LOAD_PARMSW;
pub const MCI_LOAD_PARMS = MCI_LOAD_PARMSA;
pub const PMCI_LOAD_PARMS = PMCI_LOAD_PARMSA;
pub const LPMCI_LOAD_PARMS = LPMCI_LOAD_PARMSA;
pub const struct_tagMCI_RECORD_PARMS = extern struct {
dwCallback: DWORD_PTR,
dwFrom: DWORD,
dwTo: DWORD,
};
pub const MCI_RECORD_PARMS = struct_tagMCI_RECORD_PARMS;
pub const LPMCI_RECORD_PARMS = ?&struct_tagMCI_RECORD_PARMS;
pub const struct_tagMCI_VD_PLAY_PARMS = extern struct {
dwCallback: DWORD_PTR,
dwFrom: DWORD,
dwTo: DWORD,
dwSpeed: DWORD,
};
pub const MCI_VD_PLAY_PARMS = struct_tagMCI_VD_PLAY_PARMS;
pub const PMCI_VD_PLAY_PARMS = ?&struct_tagMCI_VD_PLAY_PARMS;
pub const LPMCI_VD_PLAY_PARMS = ?&struct_tagMCI_VD_PLAY_PARMS;
pub const struct_tagMCI_VD_STEP_PARMS = extern struct {
dwCallback: DWORD_PTR,
dwFrames: DWORD,
};
pub const MCI_VD_STEP_PARMS = struct_tagMCI_VD_STEP_PARMS;
pub const PMCI_VD_STEP_PARMS = ?&struct_tagMCI_VD_STEP_PARMS;
pub const LPMCI_VD_STEP_PARMS = ?&struct_tagMCI_VD_STEP_PARMS;
pub const struct_tagMCI_VD_ESCAPE_PARMSA = extern struct {
dwCallback: DWORD_PTR,
lpstrCommand: LPCSTR,
};
pub const MCI_VD_ESCAPE_PARMSA = struct_tagMCI_VD_ESCAPE_PARMSA;
pub const PMCI_VD_ESCAPE_PARMSA = ?&struct_tagMCI_VD_ESCAPE_PARMSA;
pub const LPMCI_VD_ESCAPE_PARMSA = ?&struct_tagMCI_VD_ESCAPE_PARMSA;
pub const struct_tagMCI_VD_ESCAPE_PARMSW = extern struct {
dwCallback: DWORD_PTR,
lpstrCommand: LPCWSTR,
};
pub const MCI_VD_ESCAPE_PARMSW = struct_tagMCI_VD_ESCAPE_PARMSW;
pub const PMCI_VD_ESCAPE_PARMSW = ?&struct_tagMCI_VD_ESCAPE_PARMSW;
pub const LPMCI_VD_ESCAPE_PARMSW = ?&struct_tagMCI_VD_ESCAPE_PARMSW;
pub const MCI_VD_ESCAPE_PARMS = MCI_VD_ESCAPE_PARMSA;
pub const PMCI_VD_ESCAPE_PARMS = PMCI_VD_ESCAPE_PARMSA;
pub const LPMCI_VD_ESCAPE_PARMS = LPMCI_VD_ESCAPE_PARMSA;
pub const struct_tagMCI_WAVE_OPEN_PARMSA = extern struct {
dwCallback: DWORD_PTR,
wDeviceID: MCIDEVICEID,
lpstrDeviceType: LPCSTR,
lpstrElementName: LPCSTR,
lpstrAlias: LPCSTR,
dwBufferSeconds: DWORD,
};
pub const MCI_WAVE_OPEN_PARMSA = struct_tagMCI_WAVE_OPEN_PARMSA;
pub const PMCI_WAVE_OPEN_PARMSA = ?&struct_tagMCI_WAVE_OPEN_PARMSA;
pub const LPMCI_WAVE_OPEN_PARMSA = ?&struct_tagMCI_WAVE_OPEN_PARMSA;
pub const struct_tagMCI_WAVE_OPEN_PARMSW = extern struct {
dwCallback: DWORD_PTR,
wDeviceID: MCIDEVICEID,
lpstrDeviceType: LPCWSTR,
lpstrElementName: LPCWSTR,
lpstrAlias: LPCWSTR,
dwBufferSeconds: DWORD,
};
pub const MCI_WAVE_OPEN_PARMSW = struct_tagMCI_WAVE_OPEN_PARMSW;
pub const PMCI_WAVE_OPEN_PARMSW = ?&struct_tagMCI_WAVE_OPEN_PARMSW;
pub const LPMCI_WAVE_OPEN_PARMSW = ?&struct_tagMCI_WAVE_OPEN_PARMSW;
pub const MCI_WAVE_OPEN_PARMS = MCI_WAVE_OPEN_PARMSA;
pub const PMCI_WAVE_OPEN_PARMS = PMCI_WAVE_OPEN_PARMSA;
pub const LPMCI_WAVE_OPEN_PARMS = LPMCI_WAVE_OPEN_PARMSA;
pub const struct_tagMCI_WAVE_DELETE_PARMS = extern struct {
dwCallback: DWORD_PTR,
dwFrom: DWORD,
dwTo: DWORD,
};
pub const MCI_WAVE_DELETE_PARMS = struct_tagMCI_WAVE_DELETE_PARMS;
pub const PMCI_WAVE_DELETE_PARMS = ?&struct_tagMCI_WAVE_DELETE_PARMS;
pub const LPMCI_WAVE_DELETE_PARMS = ?&struct_tagMCI_WAVE_DELETE_PARMS;
pub const struct_tagMCI_WAVE_SET_PARMS = extern struct {
dwCallback: DWORD_PTR,
dwTimeFormat: DWORD,
dwAudio: DWORD,
wInput: UINT,
wOutput: UINT,
wFormatTag: WORD,
wReserved2: WORD,
nChannels: WORD,
wReserved3: WORD,
nSamplesPerSec: DWORD,
nAvgBytesPerSec: DWORD,
nBlockAlign: WORD,
wReserved4: WORD,
wBitsPerSample: WORD,
wReserved5: WORD,
};
pub const MCI_WAVE_SET_PARMS = struct_tagMCI_WAVE_SET_PARMS;
pub const PMCI_WAVE_SET_PARMS = ?&struct_tagMCI_WAVE_SET_PARMS;
pub const LPMCI_WAVE_SET_PARMS = ?&struct_tagMCI_WAVE_SET_PARMS;
pub const struct_tagMCI_SEQ_SET_PARMS = extern struct {
dwCallback: DWORD_PTR,
dwTimeFormat: DWORD,
dwAudio: DWORD,
dwTempo: DWORD,
dwPort: DWORD,
dwSlave: DWORD,
dwMaster: DWORD,
dwOffset: DWORD,
};
pub const MCI_SEQ_SET_PARMS = struct_tagMCI_SEQ_SET_PARMS;
pub const PMCI_SEQ_SET_PARMS = ?&struct_tagMCI_SEQ_SET_PARMS;
pub const LPMCI_SEQ_SET_PARMS = ?&struct_tagMCI_SEQ_SET_PARMS;
pub const struct_tagMCI_ANIM_OPEN_PARMSA = extern struct {
dwCallback: DWORD_PTR,
wDeviceID: MCIDEVICEID,
lpstrDeviceType: LPCSTR,
lpstrElementName: LPCSTR,
lpstrAlias: LPCSTR,
dwStyle: DWORD,
hWndParent: HWND,
};
pub const MCI_ANIM_OPEN_PARMSA = struct_tagMCI_ANIM_OPEN_PARMSA;
pub const PMCI_ANIM_OPEN_PARMSA = ?&struct_tagMCI_ANIM_OPEN_PARMSA;
pub const LPMCI_ANIM_OPEN_PARMSA = ?&struct_tagMCI_ANIM_OPEN_PARMSA;
pub const struct_tagMCI_ANIM_OPEN_PARMSW = extern struct {
dwCallback: DWORD_PTR,
wDeviceID: MCIDEVICEID,
lpstrDeviceType: LPCWSTR,
lpstrElementName: LPCWSTR,
lpstrAlias: LPCWSTR,
dwStyle: DWORD,
hWndParent: HWND,
};
pub const MCI_ANIM_OPEN_PARMSW = struct_tagMCI_ANIM_OPEN_PARMSW;
pub const PMCI_ANIM_OPEN_PARMSW = ?&struct_tagMCI_ANIM_OPEN_PARMSW;
pub const LPMCI_ANIM_OPEN_PARMSW = ?&struct_tagMCI_ANIM_OPEN_PARMSW;
pub const MCI_ANIM_OPEN_PARMS = MCI_ANIM_OPEN_PARMSA;
pub const PMCI_ANIM_OPEN_PARMS = PMCI_ANIM_OPEN_PARMSA;
pub const LPMCI_ANIM_OPEN_PARMS = LPMCI_ANIM_OPEN_PARMSA;
pub const struct_tagMCI_ANIM_PLAY_PARMS = extern struct {
dwCallback: DWORD_PTR,
dwFrom: DWORD,
dwTo: DWORD,
dwSpeed: DWORD,
};
pub const MCI_ANIM_PLAY_PARMS = struct_tagMCI_ANIM_PLAY_PARMS;
pub const PMCI_ANIM_PLAY_PARMS = ?&struct_tagMCI_ANIM_PLAY_PARMS;
pub const LPMCI_ANIM_PLAY_PARMS = ?&struct_tagMCI_ANIM_PLAY_PARMS;
pub const struct_tagMCI_ANIM_STEP_PARMS = extern struct {
dwCallback: DWORD_PTR,
dwFrames: DWORD,
};
pub const MCI_ANIM_STEP_PARMS = struct_tagMCI_ANIM_STEP_PARMS;
pub const PMCI_ANIM_STEP_PARMS = ?&struct_tagMCI_ANIM_STEP_PARMS;
pub const LPMCI_ANIM_STEP_PARMS = ?&struct_tagMCI_ANIM_STEP_PARMS;
pub const struct_tagMCI_ANIM_WINDOW_PARMSA = extern struct {
dwCallback: DWORD_PTR,
hWnd: HWND,
nCmdShow: UINT,
lpstrText: LPCSTR,
};
pub const MCI_ANIM_WINDOW_PARMSA = struct_tagMCI_ANIM_WINDOW_PARMSA;
pub const PMCI_ANIM_WINDOW_PARMSA = ?&struct_tagMCI_ANIM_WINDOW_PARMSA;
pub const LPMCI_ANIM_WINDOW_PARMSA = ?&struct_tagMCI_ANIM_WINDOW_PARMSA;
pub const struct_tagMCI_ANIM_WINDOW_PARMSW = extern struct {
dwCallback: DWORD_PTR,
hWnd: HWND,
nCmdShow: UINT,
lpstrText: LPCWSTR,
};
pub const MCI_ANIM_WINDOW_PARMSW = struct_tagMCI_ANIM_WINDOW_PARMSW;
pub const PMCI_ANIM_WINDOW_PARMSW = ?&struct_tagMCI_ANIM_WINDOW_PARMSW;
pub const LPMCI_ANIM_WINDOW_PARMSW = ?&struct_tagMCI_ANIM_WINDOW_PARMSW;
pub const MCI_ANIM_WINDOW_PARMS = MCI_ANIM_WINDOW_PARMSA;
pub const PMCI_ANIM_WINDOW_PARMS = PMCI_ANIM_WINDOW_PARMSA;
pub const LPMCI_ANIM_WINDOW_PARMS = LPMCI_ANIM_WINDOW_PARMSA;
pub const struct_tagMCI_ANIM_RECT_PARMS = extern struct {
dwCallback: DWORD_PTR,
rc: RECT,
};
pub const MCI_ANIM_RECT_PARMS = struct_tagMCI_ANIM_RECT_PARMS;
pub const PMCI_ANIM_RECT_PARMS = ?&MCI_ANIM_RECT_PARMS;
pub const LPMCI_ANIM_RECT_PARMS = ?&MCI_ANIM_RECT_PARMS;
pub const struct_tagMCI_ANIM_UPDATE_PARMS = extern struct {
dwCallback: DWORD_PTR,
rc: RECT,
hDC: HDC,
};
pub const MCI_ANIM_UPDATE_PARMS = struct_tagMCI_ANIM_UPDATE_PARMS;
pub const PMCI_ANIM_UPDATE_PARMS = ?&struct_tagMCI_ANIM_UPDATE_PARMS;
pub const LPMCI_ANIM_UPDATE_PARMS = ?&struct_tagMCI_ANIM_UPDATE_PARMS;
pub const struct_tagMCI_OVLY_OPEN_PARMSA = extern struct {
dwCallback: DWORD_PTR,
wDeviceID: MCIDEVICEID,
lpstrDeviceType: LPCSTR,
lpstrElementName: LPCSTR,
lpstrAlias: LPCSTR,
dwStyle: DWORD,
hWndParent: HWND,
};
pub const MCI_OVLY_OPEN_PARMSA = struct_tagMCI_OVLY_OPEN_PARMSA;
pub const PMCI_OVLY_OPEN_PARMSA = ?&struct_tagMCI_OVLY_OPEN_PARMSA;
pub const LPMCI_OVLY_OPEN_PARMSA = ?&struct_tagMCI_OVLY_OPEN_PARMSA;
pub const struct_tagMCI_OVLY_OPEN_PARMSW = extern struct {
dwCallback: DWORD_PTR,
wDeviceID: MCIDEVICEID,
lpstrDeviceType: LPCWSTR,
lpstrElementName: LPCWSTR,
lpstrAlias: LPCWSTR,
dwStyle: DWORD,
hWndParent: HWND,
};
pub const MCI_OVLY_OPEN_PARMSW = struct_tagMCI_OVLY_OPEN_PARMSW;
pub const PMCI_OVLY_OPEN_PARMSW = ?&struct_tagMCI_OVLY_OPEN_PARMSW;
pub const LPMCI_OVLY_OPEN_PARMSW = ?&struct_tagMCI_OVLY_OPEN_PARMSW;
pub const MCI_OVLY_OPEN_PARMS = MCI_OVLY_OPEN_PARMSA;
pub const PMCI_OVLY_OPEN_PARMS = PMCI_OVLY_OPEN_PARMSA;
pub const LPMCI_OVLY_OPEN_PARMS = LPMCI_OVLY_OPEN_PARMSA;
pub const struct_tagMCI_OVLY_WINDOW_PARMSA = extern struct {
dwCallback: DWORD_PTR,
hWnd: HWND,
nCmdShow: UINT,
lpstrText: LPCSTR,
};
pub const MCI_OVLY_WINDOW_PARMSA = struct_tagMCI_OVLY_WINDOW_PARMSA;
pub const PMCI_OVLY_WINDOW_PARMSA = ?&struct_tagMCI_OVLY_WINDOW_PARMSA;
pub const LPMCI_OVLY_WINDOW_PARMSA = ?&struct_tagMCI_OVLY_WINDOW_PARMSA;
pub const struct_tagMCI_OVLY_WINDOW_PARMSW = extern struct {
dwCallback: DWORD_PTR,
hWnd: HWND,
nCmdShow: UINT,
lpstrText: LPCWSTR,
};
pub const MCI_OVLY_WINDOW_PARMSW = struct_tagMCI_OVLY_WINDOW_PARMSW;
pub const PMCI_OVLY_WINDOW_PARMSW = ?&struct_tagMCI_OVLY_WINDOW_PARMSW;
pub const LPMCI_OVLY_WINDOW_PARMSW = ?&struct_tagMCI_OVLY_WINDOW_PARMSW;
pub const MCI_OVLY_WINDOW_PARMS = MCI_OVLY_WINDOW_PARMSA;
pub const PMCI_OVLY_WINDOW_PARMS = PMCI_OVLY_WINDOW_PARMSA;
pub const LPMCI_OVLY_WINDOW_PARMS = LPMCI_OVLY_WINDOW_PARMSA;
pub const struct_tagMCI_OVLY_RECT_PARMS = extern struct {
dwCallback: DWORD_PTR,
rc: RECT,
};
pub const MCI_OVLY_RECT_PARMS = struct_tagMCI_OVLY_RECT_PARMS;
pub const PMCI_OVLY_RECT_PARMS = ?&struct_tagMCI_OVLY_RECT_PARMS;
pub const LPMCI_OVLY_RECT_PARMS = ?&struct_tagMCI_OVLY_RECT_PARMS;
pub const struct_tagMCI_OVLY_SAVE_PARMSA = extern struct {
dwCallback: DWORD_PTR,
lpfilename: LPCSTR,
rc: RECT,
};
pub const MCI_OVLY_SAVE_PARMSA = struct_tagMCI_OVLY_SAVE_PARMSA;
pub const PMCI_OVLY_SAVE_PARMSA = ?&struct_tagMCI_OVLY_SAVE_PARMSA;
pub const LPMCI_OVLY_SAVE_PARMSA = ?&struct_tagMCI_OVLY_SAVE_PARMSA;
pub const struct_tagMCI_OVLY_SAVE_PARMSW = extern struct {
dwCallback: DWORD_PTR,
lpfilename: LPCWSTR,
rc: RECT,
};
pub const MCI_OVLY_SAVE_PARMSW = struct_tagMCI_OVLY_SAVE_PARMSW;
pub const PMCI_OVLY_SAVE_PARMSW = ?&struct_tagMCI_OVLY_SAVE_PARMSW;
pub const LPMCI_OVLY_SAVE_PARMSW = ?&struct_tagMCI_OVLY_SAVE_PARMSW;
pub const MCI_OVLY_SAVE_PARMS = MCI_OVLY_SAVE_PARMSA;
pub const PMCI_OVLY_SAVE_PARMS = PMCI_OVLY_SAVE_PARMSA;
pub const LPMCI_OVLY_SAVE_PARMS = LPMCI_OVLY_SAVE_PARMSA;
pub const struct_tagMCI_OVLY_LOAD_PARMSA = extern struct {
dwCallback: DWORD_PTR,
lpfilename: LPCSTR,
rc: RECT,
};
pub const MCI_OVLY_LOAD_PARMSA = struct_tagMCI_OVLY_LOAD_PARMSA;
pub const PMCI_OVLY_LOAD_PARMSA = ?&struct_tagMCI_OVLY_LOAD_PARMSA;
pub const LPMCI_OVLY_LOAD_PARMSA = ?&struct_tagMCI_OVLY_LOAD_PARMSA;
pub const struct_tagMCI_OVLY_LOAD_PARMSW = extern struct {
dwCallback: DWORD_PTR,
lpfilename: LPCWSTR,
rc: RECT,
};
pub const MCI_OVLY_LOAD_PARMSW = struct_tagMCI_OVLY_LOAD_PARMSW;
pub const PMCI_OVLY_LOAD_PARMSW = ?&struct_tagMCI_OVLY_LOAD_PARMSW;
pub const LPMCI_OVLY_LOAD_PARMSW = ?&struct_tagMCI_OVLY_LOAD_PARMSW;
pub const MCI_OVLY_LOAD_PARMS = MCI_OVLY_LOAD_PARMSA;
pub const PMCI_OVLY_LOAD_PARMS = PMCI_OVLY_LOAD_PARMSA;
pub const LPMCI_OVLY_LOAD_PARMS = LPMCI_OVLY_LOAD_PARMSA;
pub extern fn mciGetDriverData(wDeviceID: MCIDEVICEID) -> DWORD_PTR;
pub extern fn mciLoadCommandResource(hInstance: HANDLE, lpResName: LPCWSTR, wType: UINT) -> UINT;
pub extern fn mciSetDriverData(wDeviceID: MCIDEVICEID, dwData: DWORD_PTR) -> BOOL;
pub extern fn mciDriverYield(wDeviceID: MCIDEVICEID) -> UINT;
pub extern fn mciDriverNotify(hwndCallback: HANDLE, wDeviceID: MCIDEVICEID, uStatus: UINT) -> BOOL;
pub extern fn mciFreeCommandResource(wTable: UINT) -> BOOL;
pub const struct_DRVCONFIGINFOEX = extern struct {
dwDCISize: DWORD,
lpszDCISectionName: LPCWSTR,
lpszDCIAliasName: LPCWSTR,
dnDevNode: DWORD,
};
pub const DRVCONFIGINFOEX = struct_DRVCONFIGINFOEX;
pub const PDRVCONFIGINFOEX = ?&struct_DRVCONFIGINFOEX;
pub const NPDRVCONFIGINFOEX = ?&struct_DRVCONFIGINFOEX;
pub const LPDRVCONFIGINFOEX = ?&struct_DRVCONFIGINFOEX;
pub const struct_tagDRVCONFIGINFO = extern struct {
dwDCISize: DWORD,
lpszDCISectionName: LPCWSTR,
lpszDCIAliasName: LPCWSTR,
};
pub const DRVCONFIGINFO = struct_tagDRVCONFIGINFO;
pub const PDRVCONFIGINFO = ?&struct_tagDRVCONFIGINFO;
pub const NPDRVCONFIGINFO = ?&struct_tagDRVCONFIGINFO;
pub const LPDRVCONFIGINFO = ?&struct_tagDRVCONFIGINFO;
pub const DRIVERPROC = ?extern fn(DWORD_PTR, HDRVR, UINT, LPARAM, LPARAM) -> LRESULT;
pub extern fn CloseDriver(hDriver: HDRVR, lParam1: LPARAM, lParam2: LPARAM) -> LRESULT;
pub extern fn OpenDriver(szDriverName: LPCWSTR, szSectionName: LPCWSTR, lParam2: LPARAM) -> HDRVR;
pub extern fn SendDriverMessage(hDriver: HDRVR, message: UINT, lParam1: LPARAM, lParam2: LPARAM) -> LRESULT;
pub extern fn DrvGetModuleHandle(hDriver: HDRVR) -> HMODULE;
pub extern fn GetDriverModuleHandle(hDriver: HDRVR) -> HMODULE;
pub extern fn DefDriverProc(dwDriverIdentifier: DWORD_PTR, hdrvr: HDRVR, uMsg: UINT, lParam1: LPARAM, lParam2: LPARAM) -> LRESULT;
pub extern fn DriverCallback(dwCallback: DWORD_PTR, dwFlags: DWORD, hDevice: HDRVR, dwMsg: DWORD, dwUser: DWORD_PTR, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR) -> BOOL;
pub extern fn sndOpenSound(EventName: LPCWSTR, AppName: LPCWSTR, Flags: INT32, FileHandle: PHANDLE) -> LONG;
pub const DRIVERMSGPROC = ?extern fn(DWORD, DWORD, DWORD_PTR, DWORD_PTR, DWORD_PTR) -> DWORD;
pub extern fn mmDrvInstall(hDriver: HDRVR, wszDrvEntry: LPCWSTR, drvMessage: DRIVERMSGPROC, wFlags: UINT) -> UINT;
pub const FOURCC = DWORD;
pub const HPSTR = ?&u8;
pub const struct_HMMIO__ = extern struct {
unused: c_int,
};
pub const HMMIO = ?&struct_HMMIO__;
pub const MMIOPROC = extern fn(LPSTR, UINT, LPARAM, LPARAM) -> LRESULT;
pub const LPMMIOPROC = ?&MMIOPROC;
pub const struct__MMIOINFO = extern struct {
dwFlags: DWORD,
fccIOProc: FOURCC,
pIOProc: LPMMIOPROC,
wErrorRet: UINT,
htask: HTASK,
cchBuffer: LONG,
pchBuffer: HPSTR,
pchNext: HPSTR,
pchEndRead: HPSTR,
pchEndWrite: HPSTR,
lBufOffset: LONG,
lDiskOffset: LONG,
adwInfo: [3]DWORD,
dwReserved1: DWORD,
dwReserved2: DWORD,
hmmio: HMMIO,
};
pub const MMIOINFO = struct__MMIOINFO;
pub const PMMIOINFO = ?&struct__MMIOINFO;
pub const NPMMIOINFO = ?&struct__MMIOINFO;
pub const LPMMIOINFO = ?&struct__MMIOINFO;
pub const LPCMMIOINFO = ?&const MMIOINFO;
pub const struct__MMCKINFO = extern struct {
ckid: FOURCC,
cksize: DWORD,
fccType: FOURCC,
dwDataOffset: DWORD,
dwFlags: DWORD,
};
pub const MMCKINFO = struct__MMCKINFO;
pub const PMMCKINFO = ?&struct__MMCKINFO;
pub const NPMMCKINFO = ?&struct__MMCKINFO;
pub const LPMMCKINFO = ?&struct__MMCKINFO;
pub const LPCMMCKINFO = ?&const MMCKINFO;
pub extern fn mmioStringToFOURCCA(sz: LPCSTR, uFlags: UINT) -> FOURCC;
pub extern fn mmioStringToFOURCCW(sz: LPCWSTR, uFlags: UINT) -> FOURCC;
pub extern fn mmioInstallIOProcA(fccIOProc: FOURCC, pIOProc: LPMMIOPROC, dwFlags: DWORD) -> LPMMIOPROC;
pub extern fn mmioInstallIOProcW(fccIOProc: FOURCC, pIOProc: LPMMIOPROC, dwFlags: DWORD) -> LPMMIOPROC;
pub extern fn mmioOpenA(pszFileName: LPSTR, pmmioinfo: LPMMIOINFO, fdwOpen: DWORD) -> HMMIO;
pub extern fn mmioOpenW(pszFileName: LPWSTR, pmmioinfo: LPMMIOINFO, fdwOpen: DWORD) -> HMMIO;
pub extern fn mmioRenameA(pszFileName: LPCSTR, pszNewFileName: LPCSTR, pmmioinfo: LPCMMIOINFO, fdwRename: DWORD) -> MMRESULT;
pub extern fn mmioRenameW(pszFileName: LPCWSTR, pszNewFileName: LPCWSTR, pmmioinfo: LPCMMIOINFO, fdwRename: DWORD) -> MMRESULT;
pub extern fn mmioClose(hmmio: HMMIO, fuClose: UINT) -> MMRESULT;
pub extern fn mmioRead(hmmio: HMMIO, pch: HPSTR, cch: LONG) -> LONG;
pub extern fn mmioWrite(hmmio: HMMIO, pch: ?&const u8, cch: LONG) -> LONG;
pub extern fn mmioSeek(hmmio: HMMIO, lOffset: LONG, iOrigin: c_int) -> LONG;
pub extern fn mmioGetInfo(hmmio: HMMIO, pmmioinfo: LPMMIOINFO, fuInfo: UINT) -> MMRESULT;
pub extern fn mmioSetInfo(hmmio: HMMIO, pmmioinfo: LPCMMIOINFO, fuInfo: UINT) -> MMRESULT;
pub extern fn mmioSetBuffer(hmmio: HMMIO, pchBuffer: LPSTR, cchBuffer: LONG, fuBuffer: UINT) -> MMRESULT;
pub extern fn mmioFlush(hmmio: HMMIO, fuFlush: UINT) -> MMRESULT;
pub extern fn mmioAdvance(hmmio: HMMIO, pmmioinfo: LPMMIOINFO, fuAdvance: UINT) -> MMRESULT;
pub extern fn mmioSendMessage(hmmio: HMMIO, uMsg: UINT, lParam1: LPARAM, lParam2: LPARAM) -> LRESULT;
pub extern fn mmioDescend(hmmio: HMMIO, pmmcki: LPMMCKINFO, pmmckiParent: ?&const MMCKINFO, fuDescend: UINT) -> MMRESULT;
pub extern fn mmioAscend(hmmio: HMMIO, pmmcki: LPMMCKINFO, fuAscend: UINT) -> MMRESULT;
pub extern fn mmioCreateChunk(hmmio: HMMIO, pmmcki: LPMMCKINFO, fuCreate: UINT) -> MMRESULT;
pub const TIMECALLBACK = extern fn(UINT, UINT, DWORD_PTR, DWORD_PTR, DWORD_PTR);
pub const LPTIMECALLBACK = ?&TIMECALLBACK;
pub extern fn timeSetEvent(uDelay: UINT, uResolution: UINT, fptc: LPTIMECALLBACK, dwUser: DWORD_PTR, fuEvent: UINT) -> MMRESULT;
pub extern fn timeKillEvent(uTimerID: UINT) -> MMRESULT;
pub extern fn sndPlaySoundA(pszSound: LPCSTR, fuSound: UINT) -> BOOL;
pub extern fn sndPlaySoundW(pszSound: LPCWSTR, fuSound: UINT) -> BOOL;
pub extern fn PlaySoundA(pszSound: LPCSTR, hmod: HMODULE, fdwSound: DWORD) -> BOOL;
pub extern fn PlaySoundW(pszSound: LPCWSTR, hmod: HMODULE, fdwSound: DWORD) -> BOOL;
pub const struct_HWAVE__ = extern struct {
unused: c_int,
};
pub const HWAVE = ?&struct_HWAVE__;
pub const struct_HWAVEIN__ = extern struct {
unused: c_int,
};
pub const HWAVEIN = ?&struct_HWAVEIN__;
pub const struct_HWAVEOUT__ = extern struct {
unused: c_int,
};
pub const HWAVEOUT = ?&struct_HWAVEOUT__;
pub const LPHWAVEIN = ?&HWAVEIN;
pub const LPHWAVEOUT = ?&HWAVEOUT;
pub const WAVECALLBACK = DRVCALLBACK;
pub const LPWAVECALLBACK = ?&WAVECALLBACK;
pub const struct_wavehdr_tag = extern struct {
lpData: LPSTR,
dwBufferLength: DWORD,
dwBytesRecorded: DWORD,
dwUser: DWORD_PTR,
dwFlags: DWORD,
dwLoops: DWORD,
lpNext: ?&struct_wavehdr_tag,
reserved: DWORD_PTR,
};
pub const WAVEHDR = struct_wavehdr_tag;
pub const PWAVEHDR = ?&struct_wavehdr_tag;
pub const NPWAVEHDR = ?&struct_wavehdr_tag;
pub const LPWAVEHDR = ?&struct_wavehdr_tag;
pub const struct_tagWAVEOUTCAPSA = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]CHAR,
dwFormats: DWORD,
wChannels: WORD,
wReserved1: WORD,
dwSupport: DWORD,
};
pub const WAVEOUTCAPSA = struct_tagWAVEOUTCAPSA;
pub const PWAVEOUTCAPSA = ?&struct_tagWAVEOUTCAPSA;
pub const NPWAVEOUTCAPSA = ?&struct_tagWAVEOUTCAPSA;
pub const LPWAVEOUTCAPSA = ?&struct_tagWAVEOUTCAPSA;
pub const struct_tagWAVEOUTCAPSW = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]WCHAR,
dwFormats: DWORD,
wChannels: WORD,
wReserved1: WORD,
dwSupport: DWORD,
};
pub const WAVEOUTCAPSW = struct_tagWAVEOUTCAPSW;
pub const PWAVEOUTCAPSW = ?&struct_tagWAVEOUTCAPSW;
pub const NPWAVEOUTCAPSW = ?&struct_tagWAVEOUTCAPSW;
pub const LPWAVEOUTCAPSW = ?&struct_tagWAVEOUTCAPSW;
pub const WAVEOUTCAPS = WAVEOUTCAPSA;
pub const PWAVEOUTCAPS = PWAVEOUTCAPSA;
pub const NPWAVEOUTCAPS = NPWAVEOUTCAPSA;
pub const LPWAVEOUTCAPS = LPWAVEOUTCAPSA;
pub const struct_tagWAVEOUTCAPS2A = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]CHAR,
dwFormats: DWORD,
wChannels: WORD,
wReserved1: WORD,
dwSupport: DWORD,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const WAVEOUTCAPS2A = struct_tagWAVEOUTCAPS2A;
pub const PWAVEOUTCAPS2A = ?&struct_tagWAVEOUTCAPS2A;
pub const NPWAVEOUTCAPS2A = ?&struct_tagWAVEOUTCAPS2A;
pub const LPWAVEOUTCAPS2A = ?&struct_tagWAVEOUTCAPS2A;
pub const struct_tagWAVEOUTCAPS2W = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]WCHAR,
dwFormats: DWORD,
wChannels: WORD,
wReserved1: WORD,
dwSupport: DWORD,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const WAVEOUTCAPS2W = struct_tagWAVEOUTCAPS2W;
pub const PWAVEOUTCAPS2W = ?&struct_tagWAVEOUTCAPS2W;
pub const NPWAVEOUTCAPS2W = ?&struct_tagWAVEOUTCAPS2W;
pub const LPWAVEOUTCAPS2W = ?&struct_tagWAVEOUTCAPS2W;
pub const WAVEOUTCAPS2 = WAVEOUTCAPS2A;
pub const PWAVEOUTCAPS2 = PWAVEOUTCAPS2A;
pub const NPWAVEOUTCAPS2 = NPWAVEOUTCAPS2A;
pub const LPWAVEOUTCAPS2 = LPWAVEOUTCAPS2A;
pub const struct_tagWAVEINCAPSA = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]CHAR,
dwFormats: DWORD,
wChannels: WORD,
wReserved1: WORD,
};
pub const WAVEINCAPSA = struct_tagWAVEINCAPSA;
pub const PWAVEINCAPSA = ?&struct_tagWAVEINCAPSA;
pub const NPWAVEINCAPSA = ?&struct_tagWAVEINCAPSA;
pub const LPWAVEINCAPSA = ?&struct_tagWAVEINCAPSA;
pub const struct_tagWAVEINCAPSW = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]WCHAR,
dwFormats: DWORD,
wChannels: WORD,
wReserved1: WORD,
};
pub const WAVEINCAPSW = struct_tagWAVEINCAPSW;
pub const PWAVEINCAPSW = ?&struct_tagWAVEINCAPSW;
pub const NPWAVEINCAPSW = ?&struct_tagWAVEINCAPSW;
pub const LPWAVEINCAPSW = ?&struct_tagWAVEINCAPSW;
pub const WAVEINCAPS = WAVEINCAPSA;
pub const PWAVEINCAPS = PWAVEINCAPSA;
pub const NPWAVEINCAPS = NPWAVEINCAPSA;
pub const LPWAVEINCAPS = LPWAVEINCAPSA;
pub const struct_tagWAVEINCAPS2A = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]CHAR,
dwFormats: DWORD,
wChannels: WORD,
wReserved1: WORD,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const WAVEINCAPS2A = struct_tagWAVEINCAPS2A;
pub const PWAVEINCAPS2A = ?&struct_tagWAVEINCAPS2A;
pub const NPWAVEINCAPS2A = ?&struct_tagWAVEINCAPS2A;
pub const LPWAVEINCAPS2A = ?&struct_tagWAVEINCAPS2A;
pub const struct_tagWAVEINCAPS2W = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]WCHAR,
dwFormats: DWORD,
wChannels: WORD,
wReserved1: WORD,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const WAVEINCAPS2W = struct_tagWAVEINCAPS2W;
pub const PWAVEINCAPS2W = ?&struct_tagWAVEINCAPS2W;
pub const NPWAVEINCAPS2W = ?&struct_tagWAVEINCAPS2W;
pub const LPWAVEINCAPS2W = ?&struct_tagWAVEINCAPS2W;
pub const WAVEINCAPS2 = WAVEINCAPS2A;
pub const PWAVEINCAPS2 = PWAVEINCAPS2A;
pub const NPWAVEINCAPS2 = NPWAVEINCAPS2A;
pub const LPWAVEINCAPS2 = LPWAVEINCAPS2A;
pub const struct_waveformat_tag = extern struct {
wFormatTag: WORD,
nChannels: WORD,
nSamplesPerSec: DWORD,
nAvgBytesPerSec: DWORD,
nBlockAlign: WORD,
};
pub const WAVEFORMAT = struct_waveformat_tag;
pub const PWAVEFORMAT = ?&struct_waveformat_tag;
pub const NPWAVEFORMAT = ?&struct_waveformat_tag;
pub const LPWAVEFORMAT = ?&struct_waveformat_tag;
pub const struct_pcmwaveformat_tag = extern struct {
wf: WAVEFORMAT,
wBitsPerSample: WORD,
};
pub const PCMWAVEFORMAT = struct_pcmwaveformat_tag;
pub const PPCMWAVEFORMAT = ?&struct_pcmwaveformat_tag;
pub const NPPCMWAVEFORMAT = ?&struct_pcmwaveformat_tag;
pub const LPPCMWAVEFORMAT = ?&struct_pcmwaveformat_tag;
pub const struct_tWAVEFORMATEX = extern struct {
wFormatTag: WORD,
nChannels: WORD,
nSamplesPerSec: DWORD,
nAvgBytesPerSec: DWORD,
nBlockAlign: WORD,
wBitsPerSample: WORD,
cbSize: WORD,
};
pub const WAVEFORMATEX = struct_tWAVEFORMATEX;
pub const PWAVEFORMATEX = ?&struct_tWAVEFORMATEX;
pub const NPWAVEFORMATEX = ?&struct_tWAVEFORMATEX;
pub const LPWAVEFORMATEX = ?&struct_tWAVEFORMATEX;
pub const LPCWAVEFORMATEX = ?&const WAVEFORMATEX;
pub extern fn waveOutGetNumDevs() -> UINT;
pub extern fn waveOutGetDevCapsA(uDeviceID: UINT_PTR, pwoc: LPWAVEOUTCAPSA, cbwoc: UINT) -> MMRESULT;
pub extern fn waveOutGetDevCapsW(uDeviceID: UINT_PTR, pwoc: LPWAVEOUTCAPSW, cbwoc: UINT) -> MMRESULT;
pub extern fn waveOutGetVolume(hwo: HWAVEOUT, pdwVolume: LPDWORD) -> MMRESULT;
pub extern fn waveOutSetVolume(hwo: HWAVEOUT, dwVolume: DWORD) -> MMRESULT;
pub extern fn waveOutGetErrorTextA(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT) -> MMRESULT;
pub extern fn waveOutGetErrorTextW(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT) -> MMRESULT;
pub extern fn waveOutOpen(phwo: LPHWAVEOUT, uDeviceID: UINT, pwfx: LPCWAVEFORMATEX, dwCallback: DWORD_PTR, dwInstance: DWORD_PTR, fdwOpen: DWORD) -> MMRESULT;
pub extern fn waveOutClose(hwo: HWAVEOUT) -> MMRESULT;
pub extern fn waveOutPrepareHeader(hwo: HWAVEOUT, pwh: LPWAVEHDR, cbwh: UINT) -> MMRESULT;
pub extern fn waveOutUnprepareHeader(hwo: HWAVEOUT, pwh: LPWAVEHDR, cbwh: UINT) -> MMRESULT;
pub extern fn waveOutWrite(hwo: HWAVEOUT, pwh: LPWAVEHDR, cbwh: UINT) -> MMRESULT;
pub extern fn waveOutPause(hwo: HWAVEOUT) -> MMRESULT;
pub extern fn waveOutRestart(hwo: HWAVEOUT) -> MMRESULT;
pub extern fn waveOutReset(hwo: HWAVEOUT) -> MMRESULT;
pub extern fn waveOutBreakLoop(hwo: HWAVEOUT) -> MMRESULT;
pub extern fn waveOutGetPosition(hwo: HWAVEOUT, pmmt: LPMMTIME, cbmmt: UINT) -> MMRESULT;
pub extern fn waveOutGetPitch(hwo: HWAVEOUT, pdwPitch: LPDWORD) -> MMRESULT;
pub extern fn waveOutSetPitch(hwo: HWAVEOUT, dwPitch: DWORD) -> MMRESULT;
pub extern fn waveOutGetPlaybackRate(hwo: HWAVEOUT, pdwRate: LPDWORD) -> MMRESULT;
pub extern fn waveOutSetPlaybackRate(hwo: HWAVEOUT, dwRate: DWORD) -> MMRESULT;
pub extern fn waveOutGetID(hwo: HWAVEOUT, puDeviceID: LPUINT) -> MMRESULT;
pub extern fn waveOutMessage(hwo: HWAVEOUT, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR) -> MMRESULT;
pub extern fn waveInGetNumDevs() -> UINT;
pub extern fn waveInGetDevCapsA(uDeviceID: UINT_PTR, pwic: LPWAVEINCAPSA, cbwic: UINT) -> MMRESULT;
pub extern fn waveInGetDevCapsW(uDeviceID: UINT_PTR, pwic: LPWAVEINCAPSW, cbwic: UINT) -> MMRESULT;
pub extern fn waveInGetErrorTextA(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT) -> MMRESULT;
pub extern fn waveInGetErrorTextW(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT) -> MMRESULT;
pub extern fn waveInOpen(phwi: LPHWAVEIN, uDeviceID: UINT, pwfx: LPCWAVEFORMATEX, dwCallback: DWORD_PTR, dwInstance: DWORD_PTR, fdwOpen: DWORD) -> MMRESULT;
pub extern fn waveInClose(hwi: HWAVEIN) -> MMRESULT;
pub extern fn waveInPrepareHeader(hwi: HWAVEIN, pwh: LPWAVEHDR, cbwh: UINT) -> MMRESULT;
pub extern fn waveInUnprepareHeader(hwi: HWAVEIN, pwh: LPWAVEHDR, cbwh: UINT) -> MMRESULT;
pub extern fn waveInAddBuffer(hwi: HWAVEIN, pwh: LPWAVEHDR, cbwh: UINT) -> MMRESULT;
pub extern fn waveInStart(hwi: HWAVEIN) -> MMRESULT;
pub extern fn waveInStop(hwi: HWAVEIN) -> MMRESULT;
pub extern fn waveInReset(hwi: HWAVEIN) -> MMRESULT;
pub extern fn waveInGetPosition(hwi: HWAVEIN, pmmt: LPMMTIME, cbmmt: UINT) -> MMRESULT;
pub extern fn waveInGetID(hwi: HWAVEIN, puDeviceID: LPUINT) -> MMRESULT;
pub extern fn waveInMessage(hwi: HWAVEIN, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR) -> MMRESULT;
pub const struct_HMIDI__ = extern struct {
unused: c_int,
};
pub const HMIDI = ?&struct_HMIDI__;
pub const struct_HMIDIIN__ = extern struct {
unused: c_int,
};
pub const HMIDIIN = ?&struct_HMIDIIN__;
pub const struct_HMIDIOUT__ = extern struct {
unused: c_int,
};
pub const HMIDIOUT = ?&struct_HMIDIOUT__;
pub const struct_HMIDISTRM__ = extern struct {
unused: c_int,
};
pub const HMIDISTRM = ?&struct_HMIDISTRM__;
pub const LPHMIDI = ?&HMIDI;
pub const LPHMIDIIN = ?&HMIDIIN;
pub const LPHMIDIOUT = ?&HMIDIOUT;
pub const LPHMIDISTRM = ?&HMIDISTRM;
pub const MIDICALLBACK = DRVCALLBACK;
pub const LPMIDICALLBACK = ?&MIDICALLBACK;
pub const PATCHARRAY = [128]WORD;
pub const LPPATCHARRAY = ?&WORD;
pub const KEYARRAY = [128]WORD;
pub const LPKEYARRAY = ?&WORD;
pub const struct_tagMIDIOUTCAPSA = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]CHAR,
wTechnology: WORD,
wVoices: WORD,
wNotes: WORD,
wChannelMask: WORD,
dwSupport: DWORD,
};
pub const MIDIOUTCAPSA = struct_tagMIDIOUTCAPSA;
pub const PMIDIOUTCAPSA = ?&struct_tagMIDIOUTCAPSA;
pub const NPMIDIOUTCAPSA = ?&struct_tagMIDIOUTCAPSA;
pub const LPMIDIOUTCAPSA = ?&struct_tagMIDIOUTCAPSA;
pub const struct_tagMIDIOUTCAPSW = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]WCHAR,
wTechnology: WORD,
wVoices: WORD,
wNotes: WORD,
wChannelMask: WORD,
dwSupport: DWORD,
};
pub const MIDIOUTCAPSW = struct_tagMIDIOUTCAPSW;
pub const PMIDIOUTCAPSW = ?&struct_tagMIDIOUTCAPSW;
pub const NPMIDIOUTCAPSW = ?&struct_tagMIDIOUTCAPSW;
pub const LPMIDIOUTCAPSW = ?&struct_tagMIDIOUTCAPSW;
pub const MIDIOUTCAPS = MIDIOUTCAPSA;
pub const PMIDIOUTCAPS = PMIDIOUTCAPSA;
pub const NPMIDIOUTCAPS = NPMIDIOUTCAPSA;
pub const LPMIDIOUTCAPS = LPMIDIOUTCAPSA;
pub const struct_tagMIDIOUTCAPS2A = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]CHAR,
wTechnology: WORD,
wVoices: WORD,
wNotes: WORD,
wChannelMask: WORD,
dwSupport: DWORD,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const MIDIOUTCAPS2A = struct_tagMIDIOUTCAPS2A;
pub const PMIDIOUTCAPS2A = ?&struct_tagMIDIOUTCAPS2A;
pub const NPMIDIOUTCAPS2A = ?&struct_tagMIDIOUTCAPS2A;
pub const LPMIDIOUTCAPS2A = ?&struct_tagMIDIOUTCAPS2A;
pub const struct_tagMIDIOUTCAPS2W = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]WCHAR,
wTechnology: WORD,
wVoices: WORD,
wNotes: WORD,
wChannelMask: WORD,
dwSupport: DWORD,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const MIDIOUTCAPS2W = struct_tagMIDIOUTCAPS2W;
pub const PMIDIOUTCAPS2W = ?&struct_tagMIDIOUTCAPS2W;
pub const NPMIDIOUTCAPS2W = ?&struct_tagMIDIOUTCAPS2W;
pub const LPMIDIOUTCAPS2W = ?&struct_tagMIDIOUTCAPS2W;
pub const MIDIOUTCAPS2 = MIDIOUTCAPS2A;
pub const PMIDIOUTCAPS2 = PMIDIOUTCAPS2A;
pub const NPMIDIOUTCAPS2 = NPMIDIOUTCAPS2A;
pub const LPMIDIOUTCAPS2 = LPMIDIOUTCAPS2A;
pub const struct_tagMIDIINCAPSA = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]CHAR,
dwSupport: DWORD,
};
pub const MIDIINCAPSA = struct_tagMIDIINCAPSA;
pub const PMIDIINCAPSA = ?&struct_tagMIDIINCAPSA;
pub const NPMIDIINCAPSA = ?&struct_tagMIDIINCAPSA;
pub const LPMIDIINCAPSA = ?&struct_tagMIDIINCAPSA;
pub const struct_tagMIDIINCAPSW = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]WCHAR,
dwSupport: DWORD,
};
pub const MIDIINCAPSW = struct_tagMIDIINCAPSW;
pub const PMIDIINCAPSW = ?&struct_tagMIDIINCAPSW;
pub const NPMIDIINCAPSW = ?&struct_tagMIDIINCAPSW;
pub const LPMIDIINCAPSW = ?&struct_tagMIDIINCAPSW;
pub const MIDIINCAPS = MIDIINCAPSA;
pub const PMIDIINCAPS = PMIDIINCAPSA;
pub const NPMIDIINCAPS = NPMIDIINCAPSA;
pub const LPMIDIINCAPS = LPMIDIINCAPSA;
pub const struct_tagMIDIINCAPS2A = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]CHAR,
dwSupport: DWORD,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const MIDIINCAPS2A = struct_tagMIDIINCAPS2A;
pub const PMIDIINCAPS2A = ?&struct_tagMIDIINCAPS2A;
pub const NPMIDIINCAPS2A = ?&struct_tagMIDIINCAPS2A;
pub const LPMIDIINCAPS2A = ?&struct_tagMIDIINCAPS2A;
pub const struct_tagMIDIINCAPS2W = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]WCHAR,
dwSupport: DWORD,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const MIDIINCAPS2W = struct_tagMIDIINCAPS2W;
pub const PMIDIINCAPS2W = ?&struct_tagMIDIINCAPS2W;
pub const NPMIDIINCAPS2W = ?&struct_tagMIDIINCAPS2W;
pub const LPMIDIINCAPS2W = ?&struct_tagMIDIINCAPS2W;
pub const MIDIINCAPS2 = MIDIINCAPS2A;
pub const PMIDIINCAPS2 = PMIDIINCAPS2A;
pub const NPMIDIINCAPS2 = NPMIDIINCAPS2A;
pub const LPMIDIINCAPS2 = LPMIDIINCAPS2A;
pub const struct_midihdr_tag = extern struct {
lpData: LPSTR,
dwBufferLength: DWORD,
dwBytesRecorded: DWORD,
dwUser: DWORD_PTR,
dwFlags: DWORD,
lpNext: ?&struct_midihdr_tag,
reserved: DWORD_PTR,
dwOffset: DWORD,
dwReserved: [8]DWORD_PTR,
};
pub const MIDIHDR = struct_midihdr_tag;
pub const PMIDIHDR = ?&struct_midihdr_tag;
pub const NPMIDIHDR = ?&struct_midihdr_tag;
pub const LPMIDIHDR = ?&struct_midihdr_tag;
pub const struct_midievent_tag = extern struct {
dwDeltaTime: DWORD,
dwStreamID: DWORD,
dwEvent: DWORD,
dwParms: [1]DWORD,
};
pub const MIDIEVENT = struct_midievent_tag;
pub const struct_midistrmbuffver_tag = extern struct {
dwVersion: DWORD,
dwMid: DWORD,
dwOEMVersion: DWORD,
};
pub const MIDISTRMBUFFVER = struct_midistrmbuffver_tag;
pub const struct_midiproptimediv_tag = extern struct {
cbStruct: DWORD,
dwTimeDiv: DWORD,
};
pub const MIDIPROPTIMEDIV = struct_midiproptimediv_tag;
pub const LPMIDIPROPTIMEDIV = ?&struct_midiproptimediv_tag;
pub const struct_midiproptempo_tag = extern struct {
cbStruct: DWORD,
dwTempo: DWORD,
};
pub const MIDIPROPTEMPO = struct_midiproptempo_tag;
pub const LPMIDIPROPTEMPO = ?&struct_midiproptempo_tag;
pub extern fn midiOutGetNumDevs() -> UINT;
pub extern fn midiStreamOpen(phms: LPHMIDISTRM, puDeviceID: LPUINT, cMidi: DWORD, dwCallback: DWORD_PTR, dwInstance: DWORD_PTR, fdwOpen: DWORD) -> MMRESULT;
pub extern fn midiStreamClose(hms: HMIDISTRM) -> MMRESULT;
pub extern fn midiStreamProperty(hms: HMIDISTRM, lppropdata: LPBYTE, dwProperty: DWORD) -> MMRESULT;
pub extern fn midiStreamPosition(hms: HMIDISTRM, lpmmt: LPMMTIME, cbmmt: UINT) -> MMRESULT;
pub extern fn midiStreamOut(hms: HMIDISTRM, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
pub extern fn midiStreamPause(hms: HMIDISTRM) -> MMRESULT;
pub extern fn midiStreamRestart(hms: HMIDISTRM) -> MMRESULT;
pub extern fn midiStreamStop(hms: HMIDISTRM) -> MMRESULT;
pub extern fn midiConnect(hmi: HMIDI, hmo: HMIDIOUT, pReserved: LPVOID) -> MMRESULT;
pub extern fn midiDisconnect(hmi: HMIDI, hmo: HMIDIOUT, pReserved: LPVOID) -> MMRESULT;
pub extern fn midiOutGetDevCapsA(uDeviceID: UINT_PTR, pmoc: LPMIDIOUTCAPSA, cbmoc: UINT) -> MMRESULT;
pub extern fn midiOutGetDevCapsW(uDeviceID: UINT_PTR, pmoc: LPMIDIOUTCAPSW, cbmoc: UINT) -> MMRESULT;
pub extern fn midiOutGetVolume(hmo: HMIDIOUT, pdwVolume: LPDWORD) -> MMRESULT;
pub extern fn midiOutSetVolume(hmo: HMIDIOUT, dwVolume: DWORD) -> MMRESULT;
pub extern fn midiOutGetErrorTextA(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT) -> MMRESULT;
pub extern fn midiOutGetErrorTextW(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT) -> MMRESULT;
pub extern fn midiOutOpen(phmo: LPHMIDIOUT, uDeviceID: UINT, dwCallback: DWORD_PTR, dwInstance: DWORD_PTR, fdwOpen: DWORD) -> MMRESULT;
pub extern fn midiOutClose(hmo: HMIDIOUT) -> MMRESULT;
pub extern fn midiOutPrepareHeader(hmo: HMIDIOUT, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
pub extern fn midiOutUnprepareHeader(hmo: HMIDIOUT, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
pub extern fn midiOutShortMsg(hmo: HMIDIOUT, dwMsg: DWORD) -> MMRESULT;
pub extern fn midiOutLongMsg(hmo: HMIDIOUT, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
pub extern fn midiOutReset(hmo: HMIDIOUT) -> MMRESULT;
pub extern fn midiOutCachePatches(hmo: HMIDIOUT, uBank: UINT, pwpa: LPWORD, fuCache: UINT) -> MMRESULT;
pub extern fn midiOutCacheDrumPatches(hmo: HMIDIOUT, uPatch: UINT, pwkya: LPWORD, fuCache: UINT) -> MMRESULT;
pub extern fn midiOutGetID(hmo: HMIDIOUT, puDeviceID: LPUINT) -> MMRESULT;
pub extern fn midiOutMessage(hmo: HMIDIOUT, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR) -> MMRESULT;
pub extern fn midiInGetNumDevs() -> UINT;
pub extern fn midiInGetDevCapsA(uDeviceID: UINT_PTR, pmic: LPMIDIINCAPSA, cbmic: UINT) -> MMRESULT;
pub extern fn midiInGetDevCapsW(uDeviceID: UINT_PTR, pmic: LPMIDIINCAPSW, cbmic: UINT) -> MMRESULT;
pub extern fn midiInGetErrorTextA(mmrError: MMRESULT, pszText: LPSTR, cchText: UINT) -> MMRESULT;
pub extern fn midiInGetErrorTextW(mmrError: MMRESULT, pszText: LPWSTR, cchText: UINT) -> MMRESULT;
pub extern fn midiInOpen(phmi: LPHMIDIIN, uDeviceID: UINT, dwCallback: DWORD_PTR, dwInstance: DWORD_PTR, fdwOpen: DWORD) -> MMRESULT;
pub extern fn midiInClose(hmi: HMIDIIN) -> MMRESULT;
pub extern fn midiInPrepareHeader(hmi: HMIDIIN, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
pub extern fn midiInUnprepareHeader(hmi: HMIDIIN, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
pub extern fn midiInAddBuffer(hmi: HMIDIIN, pmh: LPMIDIHDR, cbmh: UINT) -> MMRESULT;
pub extern fn midiInStart(hmi: HMIDIIN) -> MMRESULT;
pub extern fn midiInStop(hmi: HMIDIIN) -> MMRESULT;
pub extern fn midiInReset(hmi: HMIDIIN) -> MMRESULT;
pub extern fn midiInGetID(hmi: HMIDIIN, puDeviceID: LPUINT) -> MMRESULT;
pub extern fn midiInMessage(hmi: HMIDIIN, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR) -> MMRESULT;
pub const struct_tagAUXCAPSA = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]CHAR,
wTechnology: WORD,
wReserved1: WORD,
dwSupport: DWORD,
};
pub const AUXCAPSA = struct_tagAUXCAPSA;
pub const PAUXCAPSA = ?&struct_tagAUXCAPSA;
pub const NPAUXCAPSA = ?&struct_tagAUXCAPSA;
pub const LPAUXCAPSA = ?&struct_tagAUXCAPSA;
pub const struct_tagAUXCAPSW = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]WCHAR,
wTechnology: WORD,
wReserved1: WORD,
dwSupport: DWORD,
};
pub const AUXCAPSW = struct_tagAUXCAPSW;
pub const PAUXCAPSW = ?&struct_tagAUXCAPSW;
pub const NPAUXCAPSW = ?&struct_tagAUXCAPSW;
pub const LPAUXCAPSW = ?&struct_tagAUXCAPSW;
pub const AUXCAPS = AUXCAPSA;
pub const PAUXCAPS = PAUXCAPSA;
pub const NPAUXCAPS = NPAUXCAPSA;
pub const LPAUXCAPS = LPAUXCAPSA;
pub const struct_tagAUXCAPS2A = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]CHAR,
wTechnology: WORD,
wReserved1: WORD,
dwSupport: DWORD,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const AUXCAPS2A = struct_tagAUXCAPS2A;
pub const PAUXCAPS2A = ?&struct_tagAUXCAPS2A;
pub const NPAUXCAPS2A = ?&struct_tagAUXCAPS2A;
pub const LPAUXCAPS2A = ?&struct_tagAUXCAPS2A;
pub const struct_tagAUXCAPS2W = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]WCHAR,
wTechnology: WORD,
wReserved1: WORD,
dwSupport: DWORD,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const AUXCAPS2W = struct_tagAUXCAPS2W;
pub const PAUXCAPS2W = ?&struct_tagAUXCAPS2W;
pub const NPAUXCAPS2W = ?&struct_tagAUXCAPS2W;
pub const LPAUXCAPS2W = ?&struct_tagAUXCAPS2W;
pub const AUXCAPS2 = AUXCAPS2A;
pub const PAUXCAPS2 = PAUXCAPS2A;
pub const NPAUXCAPS2 = NPAUXCAPS2A;
pub const LPAUXCAPS2 = LPAUXCAPS2A;
pub extern fn auxGetNumDevs() -> UINT;
pub extern fn auxGetDevCapsA(uDeviceID: UINT_PTR, pac: LPAUXCAPSA, cbac: UINT) -> MMRESULT;
pub extern fn auxGetDevCapsW(uDeviceID: UINT_PTR, pac: LPAUXCAPSW, cbac: UINT) -> MMRESULT;
pub extern fn auxSetVolume(uDeviceID: UINT, dwVolume: DWORD) -> MMRESULT;
pub extern fn auxGetVolume(uDeviceID: UINT, pdwVolume: LPDWORD) -> MMRESULT;
pub extern fn auxOutMessage(uDeviceID: UINT, uMsg: UINT, dw1: DWORD_PTR, dw2: DWORD_PTR) -> MMRESULT;
pub const struct_HMIXEROBJ__ = extern struct {
unused: c_int,
};
pub const HMIXEROBJ = ?&struct_HMIXEROBJ__;
pub const LPHMIXEROBJ = ?&HMIXEROBJ;
pub const struct_HMIXER__ = extern struct {
unused: c_int,
};
pub const HMIXER = ?&struct_HMIXER__;
pub const LPHMIXER = ?&HMIXER;
pub extern fn mixerGetNumDevs() -> UINT;
pub const struct_tagMIXERCAPSA = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]CHAR,
fdwSupport: DWORD,
cDestinations: DWORD,
};
pub const MIXERCAPSA = struct_tagMIXERCAPSA;
pub const PMIXERCAPSA = ?&struct_tagMIXERCAPSA;
pub const LPMIXERCAPSA = ?&struct_tagMIXERCAPSA;
pub const struct_tagMIXERCAPSW = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]WCHAR,
fdwSupport: DWORD,
cDestinations: DWORD,
};
pub const MIXERCAPSW = struct_tagMIXERCAPSW;
pub const PMIXERCAPSW = ?&struct_tagMIXERCAPSW;
pub const LPMIXERCAPSW = ?&struct_tagMIXERCAPSW;
pub const MIXERCAPS = MIXERCAPSA;
pub const PMIXERCAPS = PMIXERCAPSA;
pub const LPMIXERCAPS = LPMIXERCAPSA;
pub const struct_tagMIXERCAPS2A = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]CHAR,
fdwSupport: DWORD,
cDestinations: DWORD,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const MIXERCAPS2A = struct_tagMIXERCAPS2A;
pub const PMIXERCAPS2A = ?&struct_tagMIXERCAPS2A;
pub const LPMIXERCAPS2A = ?&struct_tagMIXERCAPS2A;
pub const struct_tagMIXERCAPS2W = extern struct {
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]WCHAR,
fdwSupport: DWORD,
cDestinations: DWORD,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const MIXERCAPS2W = struct_tagMIXERCAPS2W;
pub const PMIXERCAPS2W = ?&struct_tagMIXERCAPS2W;
pub const LPMIXERCAPS2W = ?&struct_tagMIXERCAPS2W;
pub const MIXERCAPS2 = MIXERCAPS2A;
pub const PMIXERCAPS2 = PMIXERCAPS2A;
pub const LPMIXERCAPS2 = LPMIXERCAPS2A;
pub extern fn mixerGetDevCapsA(uMxId: UINT_PTR, pmxcaps: LPMIXERCAPSA, cbmxcaps: UINT) -> MMRESULT;
pub extern fn mixerGetDevCapsW(uMxId: UINT_PTR, pmxcaps: LPMIXERCAPSW, cbmxcaps: UINT) -> MMRESULT;
pub extern fn mixerOpen(phmx: LPHMIXER, uMxId: UINT, dwCallback: DWORD_PTR, dwInstance: DWORD_PTR, fdwOpen: DWORD) -> MMRESULT;
pub extern fn mixerClose(hmx: HMIXER) -> MMRESULT;
pub extern fn mixerMessage(hmx: HMIXER, uMsg: UINT, dwParam1: DWORD_PTR, dwParam2: DWORD_PTR) -> DWORD;
pub const struct_tagMIXERLINEA = extern struct {
cbStruct: DWORD,
dwDestination: DWORD,
dwSource: DWORD,
dwLineID: DWORD,
fdwLine: DWORD,
dwUser: DWORD_PTR,
dwComponentType: DWORD,
cChannels: DWORD,
cConnections: DWORD,
cControls: DWORD,
szShortName: [16]CHAR,
szName: [64]CHAR,
Target: extern struct {
dwType: DWORD,
dwDeviceID: DWORD,
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]CHAR,
},
};
pub const MIXERLINEA = struct_tagMIXERLINEA;
pub const PMIXERLINEA = ?&struct_tagMIXERLINEA;
pub const LPMIXERLINEA = ?&struct_tagMIXERLINEA;
pub const struct_tagMIXERLINEW = extern struct {
cbStruct: DWORD,
dwDestination: DWORD,
dwSource: DWORD,
dwLineID: DWORD,
fdwLine: DWORD,
dwUser: DWORD_PTR,
dwComponentType: DWORD,
cChannels: DWORD,
cConnections: DWORD,
cControls: DWORD,
szShortName: [16]WCHAR,
szName: [64]WCHAR,
Target: extern struct {
dwType: DWORD,
dwDeviceID: DWORD,
wMid: WORD,
wPid: WORD,
vDriverVersion: MMVERSION,
szPname: [32]WCHAR,
},
};
pub const MIXERLINEW = struct_tagMIXERLINEW;
pub const PMIXERLINEW = ?&struct_tagMIXERLINEW;
pub const LPMIXERLINEW = ?&struct_tagMIXERLINEW;
pub const MIXERLINE = MIXERLINEA;
pub const PMIXERLINE = PMIXERLINEA;
pub const LPMIXERLINE = LPMIXERLINEA;
pub extern fn mixerGetLineInfoA(hmxobj: HMIXEROBJ, pmxl: LPMIXERLINEA, fdwInfo: DWORD) -> MMRESULT;
pub extern fn mixerGetLineInfoW(hmxobj: HMIXEROBJ, pmxl: LPMIXERLINEW, fdwInfo: DWORD) -> MMRESULT;
pub extern fn mixerGetID(hmxobj: HMIXEROBJ, puMxId: ?&UINT, fdwId: DWORD) -> MMRESULT;
pub const struct_tagMIXERCONTROLA = @OpaqueType();
pub const MIXERCONTROLA = struct_tagMIXERCONTROLA;
pub const PMIXERCONTROLA = ?&struct_tagMIXERCONTROLA;
pub const LPMIXERCONTROLA = ?&struct_tagMIXERCONTROLA;
pub const struct_tagMIXERCONTROLW = @OpaqueType();
pub const MIXERCONTROLW = struct_tagMIXERCONTROLW;
pub const PMIXERCONTROLW = ?&struct_tagMIXERCONTROLW;
pub const LPMIXERCONTROLW = ?&struct_tagMIXERCONTROLW;
pub const MIXERCONTROL = MIXERCONTROLA;
pub const PMIXERCONTROL = PMIXERCONTROLA;
pub const LPMIXERCONTROL = LPMIXERCONTROLA;
pub const struct_tagMIXERLINECONTROLSA = @OpaqueType();
pub const MIXERLINECONTROLSA = struct_tagMIXERLINECONTROLSA;
pub const PMIXERLINECONTROLSA = ?&struct_tagMIXERLINECONTROLSA;
pub const LPMIXERLINECONTROLSA = ?&struct_tagMIXERLINECONTROLSA;
pub const struct_tagMIXERLINECONTROLSW = @OpaqueType();
pub const MIXERLINECONTROLSW = struct_tagMIXERLINECONTROLSW;
pub const PMIXERLINECONTROLSW = ?&struct_tagMIXERLINECONTROLSW;
pub const LPMIXERLINECONTROLSW = ?&struct_tagMIXERLINECONTROLSW;
pub const MIXERLINECONTROLS = MIXERLINECONTROLSA;
pub const PMIXERLINECONTROLS = PMIXERLINECONTROLSA;
pub const LPMIXERLINECONTROLS = LPMIXERLINECONTROLSA;
pub extern fn mixerGetLineControlsA(hmxobj: HMIXEROBJ, pmxlc: LPMIXERLINECONTROLSA, fdwControls: DWORD) -> MMRESULT;
pub extern fn mixerGetLineControlsW(hmxobj: HMIXEROBJ, pmxlc: LPMIXERLINECONTROLSW, fdwControls: DWORD) -> MMRESULT;
pub const struct_tMIXERCONTROLDETAILS = @OpaqueType();
pub const MIXERCONTROLDETAILS = struct_tMIXERCONTROLDETAILS;
pub const PMIXERCONTROLDETAILS = ?&struct_tMIXERCONTROLDETAILS;
pub const LPMIXERCONTROLDETAILS = ?&struct_tMIXERCONTROLDETAILS;
pub const struct_tagMIXERCONTROLDETAILS_LISTTEXTA = extern struct {
dwParam1: DWORD,
dwParam2: DWORD,
szName: [64]CHAR,
};
pub const MIXERCONTROLDETAILS_LISTTEXTA = struct_tagMIXERCONTROLDETAILS_LISTTEXTA;
pub const PMIXERCONTROLDETAILS_LISTTEXTA = ?&struct_tagMIXERCONTROLDETAILS_LISTTEXTA;
pub const LPMIXERCONTROLDETAILS_LISTTEXTA = ?&struct_tagMIXERCONTROLDETAILS_LISTTEXTA;
pub const struct_tagMIXERCONTROLDETAILS_LISTTEXTW = extern struct {
dwParam1: DWORD,
dwParam2: DWORD,
szName: [64]WCHAR,
};
pub const MIXERCONTROLDETAILS_LISTTEXTW = struct_tagMIXERCONTROLDETAILS_LISTTEXTW;
pub const PMIXERCONTROLDETAILS_LISTTEXTW = ?&struct_tagMIXERCONTROLDETAILS_LISTTEXTW;
pub const LPMIXERCONTROLDETAILS_LISTTEXTW = ?&struct_tagMIXERCONTROLDETAILS_LISTTEXTW;
pub const MIXERCONTROLDETAILS_LISTTEXT = MIXERCONTROLDETAILS_LISTTEXTA;
pub const PMIXERCONTROLDETAILS_LISTTEXT = PMIXERCONTROLDETAILS_LISTTEXTA;
pub const LPMIXERCONTROLDETAILS_LISTTEXT = LPMIXERCONTROLDETAILS_LISTTEXTA;
pub const struct_tMIXERCONTROLDETAILS_BOOLEAN = extern struct {
fValue: LONG,
};
pub const MIXERCONTROLDETAILS_BOOLEAN = struct_tMIXERCONTROLDETAILS_BOOLEAN;
pub const PMIXERCONTROLDETAILS_BOOLEAN = ?&struct_tMIXERCONTROLDETAILS_BOOLEAN;
pub const LPMIXERCONTROLDETAILS_BOOLEAN = ?&struct_tMIXERCONTROLDETAILS_BOOLEAN;
pub const struct_tMIXERCONTROLDETAILS_SIGNED = extern struct {
lValue: LONG,
};
pub const MIXERCONTROLDETAILS_SIGNED = struct_tMIXERCONTROLDETAILS_SIGNED;
pub const PMIXERCONTROLDETAILS_SIGNED = ?&struct_tMIXERCONTROLDETAILS_SIGNED;
pub const LPMIXERCONTROLDETAILS_SIGNED = ?&struct_tMIXERCONTROLDETAILS_SIGNED;
pub const struct_tMIXERCONTROLDETAILS_UNSIGNED = extern struct {
dwValue: DWORD,
};
pub const MIXERCONTROLDETAILS_UNSIGNED = struct_tMIXERCONTROLDETAILS_UNSIGNED;
pub const PMIXERCONTROLDETAILS_UNSIGNED = ?&struct_tMIXERCONTROLDETAILS_UNSIGNED;
pub const LPMIXERCONTROLDETAILS_UNSIGNED = ?&struct_tMIXERCONTROLDETAILS_UNSIGNED;
pub extern fn mixerGetControlDetailsA(hmxobj: HMIXEROBJ, pmxcd: LPMIXERCONTROLDETAILS, fdwDetails: DWORD) -> MMRESULT;
pub extern fn mixerGetControlDetailsW(hmxobj: HMIXEROBJ, pmxcd: LPMIXERCONTROLDETAILS, fdwDetails: DWORD) -> MMRESULT;
pub extern fn mixerSetControlDetails(hmxobj: HMIXEROBJ, pmxcd: LPMIXERCONTROLDETAILS, fdwDetails: DWORD) -> MMRESULT;
pub const struct_timecaps_tag = extern struct {
wPeriodMin: UINT,
wPeriodMax: UINT,
};
pub const TIMECAPS = struct_timecaps_tag;
pub const PTIMECAPS = ?&struct_timecaps_tag;
pub const NPTIMECAPS = ?&struct_timecaps_tag;
pub const LPTIMECAPS = ?&struct_timecaps_tag;
pub extern fn timeGetSystemTime(pmmt: LPMMTIME, cbmmt: UINT) -> MMRESULT;
pub extern fn timeGetTime() -> DWORD;
pub extern fn timeGetDevCaps(ptc: LPTIMECAPS, cbtc: UINT) -> MMRESULT;
pub extern fn timeBeginPeriod(uPeriod: UINT) -> MMRESULT;
pub extern fn timeEndPeriod(uPeriod: UINT) -> MMRESULT;
pub const struct_tagJOYCAPSA = extern struct {
wMid: WORD,
wPid: WORD,
szPname: [32]CHAR,
wXmin: UINT,
wXmax: UINT,
wYmin: UINT,
wYmax: UINT,
wZmin: UINT,
wZmax: UINT,
wNumButtons: UINT,
wPeriodMin: UINT,
wPeriodMax: UINT,
wRmin: UINT,
wRmax: UINT,
wUmin: UINT,
wUmax: UINT,
wVmin: UINT,
wVmax: UINT,
wCaps: UINT,
wMaxAxes: UINT,
wNumAxes: UINT,
wMaxButtons: UINT,
szRegKey: [32]CHAR,
szOEMVxD: [260]CHAR,
};
pub const JOYCAPSA = struct_tagJOYCAPSA;
pub const PJOYCAPSA = ?&struct_tagJOYCAPSA;
pub const NPJOYCAPSA = ?&struct_tagJOYCAPSA;
pub const LPJOYCAPSA = ?&struct_tagJOYCAPSA;
pub const struct_tagJOYCAPSW = extern struct {
wMid: WORD,
wPid: WORD,
szPname: [32]WCHAR,
wXmin: UINT,
wXmax: UINT,
wYmin: UINT,
wYmax: UINT,
wZmin: UINT,
wZmax: UINT,
wNumButtons: UINT,
wPeriodMin: UINT,
wPeriodMax: UINT,
wRmin: UINT,
wRmax: UINT,
wUmin: UINT,
wUmax: UINT,
wVmin: UINT,
wVmax: UINT,
wCaps: UINT,
wMaxAxes: UINT,
wNumAxes: UINT,
wMaxButtons: UINT,
szRegKey: [32]WCHAR,
szOEMVxD: [260]WCHAR,
};
pub const JOYCAPSW = struct_tagJOYCAPSW;
pub const PJOYCAPSW = ?&struct_tagJOYCAPSW;
pub const NPJOYCAPSW = ?&struct_tagJOYCAPSW;
pub const LPJOYCAPSW = ?&struct_tagJOYCAPSW;
pub const JOYCAPS = JOYCAPSA;
pub const PJOYCAPS = PJOYCAPSA;
pub const NPJOYCAPS = NPJOYCAPSA;
pub const LPJOYCAPS = LPJOYCAPSA;
pub const struct_tagJOYCAPS2A = extern struct {
wMid: WORD,
wPid: WORD,
szPname: [32]CHAR,
wXmin: UINT,
wXmax: UINT,
wYmin: UINT,
wYmax: UINT,
wZmin: UINT,
wZmax: UINT,
wNumButtons: UINT,
wPeriodMin: UINT,
wPeriodMax: UINT,
wRmin: UINT,
wRmax: UINT,
wUmin: UINT,
wUmax: UINT,
wVmin: UINT,
wVmax: UINT,
wCaps: UINT,
wMaxAxes: UINT,
wNumAxes: UINT,
wMaxButtons: UINT,
szRegKey: [32]CHAR,
szOEMVxD: [260]CHAR,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const JOYCAPS2A = struct_tagJOYCAPS2A;
pub const PJOYCAPS2A = ?&struct_tagJOYCAPS2A;
pub const NPJOYCAPS2A = ?&struct_tagJOYCAPS2A;
pub const LPJOYCAPS2A = ?&struct_tagJOYCAPS2A;
pub const struct_tagJOYCAPS2W = extern struct {
wMid: WORD,
wPid: WORD,
szPname: [32]WCHAR,
wXmin: UINT,
wXmax: UINT,
wYmin: UINT,
wYmax: UINT,
wZmin: UINT,
wZmax: UINT,
wNumButtons: UINT,
wPeriodMin: UINT,
wPeriodMax: UINT,
wRmin: UINT,
wRmax: UINT,
wUmin: UINT,
wUmax: UINT,
wVmin: UINT,
wVmax: UINT,
wCaps: UINT,
wMaxAxes: UINT,
wNumAxes: UINT,
wMaxButtons: UINT,
szRegKey: [32]WCHAR,
szOEMVxD: [260]WCHAR,
ManufacturerGuid: GUID,
ProductGuid: GUID,
NameGuid: GUID,
};
pub const JOYCAPS2W = struct_tagJOYCAPS2W;
pub const PJOYCAPS2W = ?&struct_tagJOYCAPS2W;
pub const NPJOYCAPS2W = ?&struct_tagJOYCAPS2W;
pub const LPJOYCAPS2W = ?&struct_tagJOYCAPS2W;
pub const JOYCAPS2 = JOYCAPS2A;
pub const PJOYCAPS2 = PJOYCAPS2A;
pub const NPJOYCAPS2 = NPJOYCAPS2A;
pub const LPJOYCAPS2 = LPJOYCAPS2A;
pub const struct_joyinfo_tag = extern struct {
wXpos: UINT,
wYpos: UINT,
wZpos: UINT,
wButtons: UINT,
};
pub const JOYINFO = struct_joyinfo_tag;
pub const PJOYINFO = ?&struct_joyinfo_tag;
pub const NPJOYINFO = ?&struct_joyinfo_tag;
pub const LPJOYINFO = ?&struct_joyinfo_tag;
pub const struct_joyinfoex_tag = extern struct {
dwSize: DWORD,
dwFlags: DWORD,
dwXpos: DWORD,
dwYpos: DWORD,
dwZpos: DWORD,
dwRpos: DWORD,
dwUpos: DWORD,
dwVpos: DWORD,
dwButtons: DWORD,
dwButtonNumber: DWORD,
dwPOV: DWORD,
dwReserved1: DWORD,
dwReserved2: DWORD,
};
pub const JOYINFOEX = struct_joyinfoex_tag;
pub const PJOYINFOEX = ?&struct_joyinfoex_tag;
pub const NPJOYINFOEX = ?&struct_joyinfoex_tag;
pub const LPJOYINFOEX = ?&struct_joyinfoex_tag;
pub extern fn joyGetPosEx(uJoyID: UINT, pji: LPJOYINFOEX) -> MMRESULT;
pub extern fn joyGetNumDevs() -> UINT;
pub extern fn joyGetDevCapsA(uJoyID: UINT_PTR, pjc: LPJOYCAPSA, cbjc: UINT) -> MMRESULT;
pub extern fn joyGetDevCapsW(uJoyID: UINT_PTR, pjc: LPJOYCAPSW, cbjc: UINT) -> MMRESULT;
pub extern fn joyGetPos(uJoyID: UINT, pji: LPJOYINFO) -> MMRESULT;
pub extern fn joyGetThreshold(uJoyID: UINT, puThreshold: LPUINT) -> MMRESULT;
pub extern fn joyReleaseCapture(uJoyID: UINT) -> MMRESULT;
pub extern fn joySetCapture(hwnd: HWND, uJoyID: UINT, uPeriod: UINT, fChanged: BOOL) -> MMRESULT;
pub extern fn joySetThreshold(uJoyID: UINT, uThreshold: UINT) -> MMRESULT;
pub extern fn joyConfigChanged(dwFlags: DWORD) -> MMRESULT;
pub const struct__NCB = extern struct {
ncb_command: UCHAR,
ncb_retcode: UCHAR,
ncb_lsn: UCHAR,
ncb_num: UCHAR,
ncb_buffer: PUCHAR,
ncb_length: WORD,
ncb_callname: [16]UCHAR,
ncb_name: [16]UCHAR,
ncb_rto: UCHAR,
ncb_sto: UCHAR,
ncb_post: ?extern fn(?&struct__NCB),
ncb_lana_num: UCHAR,
ncb_cmd_cplt: UCHAR,
ncb_reserve: [18]UCHAR,
ncb_event: HANDLE,
};
pub const NCB = struct__NCB;
pub const PNCB = ?&struct__NCB;
pub const struct__ADAPTER_STATUS = extern struct {
adapter_address: [6]UCHAR,
rev_major: UCHAR,
reserved0: UCHAR,
adapter_type: UCHAR,
rev_minor: UCHAR,
duration: WORD,
frmr_recv: WORD,
frmr_xmit: WORD,
iframe_recv_err: WORD,
xmit_aborts: WORD,
xmit_success: DWORD,
recv_success: DWORD,
iframe_xmit_err: WORD,
recv_buff_unavail: WORD,
t1_timeouts: WORD,
ti_timeouts: WORD,
reserved1: DWORD,
free_ncbs: WORD,
max_cfg_ncbs: WORD,
max_ncbs: WORD,
xmit_buf_unavail: WORD,
max_dgram_size: WORD,
pending_sess: WORD,
max_cfg_sess: WORD,
max_sess: WORD,
max_sess_pkt_size: WORD,
name_count: WORD,
};
pub const ADAPTER_STATUS = struct__ADAPTER_STATUS;
pub const PADAPTER_STATUS = ?&struct__ADAPTER_STATUS;
pub const struct__NAME_BUFFER = extern struct {
name: [16]UCHAR,
name_num: UCHAR,
name_flags: UCHAR,
};
pub const NAME_BUFFER = struct__NAME_BUFFER;
pub const PNAME_BUFFER = ?&struct__NAME_BUFFER;
pub const struct__SESSION_HEADER = extern struct {
sess_name: UCHAR,
num_sess: UCHAR,
rcv_dg_outstanding: UCHAR,
rcv_any_outstanding: UCHAR,
};
pub const SESSION_HEADER = struct__SESSION_HEADER;
pub const PSESSION_HEADER = ?&struct__SESSION_HEADER;
pub const struct__SESSION_BUFFER = extern struct {
lsn: UCHAR,
state: UCHAR,
local_name: [16]UCHAR,
remote_name: [16]UCHAR,
rcvs_outstanding: UCHAR,
sends_outstanding: UCHAR,
};
pub const SESSION_BUFFER = struct__SESSION_BUFFER;
pub const PSESSION_BUFFER = ?&struct__SESSION_BUFFER;
pub const struct__LANA_ENUM = extern struct {
length: UCHAR,
lana: [255]UCHAR,
};
pub const LANA_ENUM = struct__LANA_ENUM;
pub const PLANA_ENUM = ?&struct__LANA_ENUM;
pub const struct__FIND_NAME_HEADER = extern struct {
node_count: WORD,
reserved: UCHAR,
unique_group: UCHAR,
};
pub const FIND_NAME_HEADER = struct__FIND_NAME_HEADER;
pub const PFIND_NAME_HEADER = ?&struct__FIND_NAME_HEADER;
pub const struct__FIND_NAME_BUFFER = extern struct {
length: UCHAR,
access_control: UCHAR,
frame_control: UCHAR,
destination_addr: [6]UCHAR,
source_addr: [6]UCHAR,
routing_info: [18]UCHAR,
};
pub const FIND_NAME_BUFFER = struct__FIND_NAME_BUFFER;
pub const PFIND_NAME_BUFFER = ?&struct__FIND_NAME_BUFFER;
pub const struct__ACTION_HEADER = extern struct {
transport_id: ULONG,
action_code: USHORT,
reserved: USHORT,
};
pub const ACTION_HEADER = struct__ACTION_HEADER;
pub const PACTION_HEADER = ?&struct__ACTION_HEADER;
pub extern fn Netbios(pncb: PNCB) -> UCHAR;
pub const I_RPC_HANDLE = ?&c_void;
pub const RPC_STATUS = c_long;
pub const RPC_CSTR = ?&u8;
pub const RPC_WSTR = ?&c_ushort;
pub const RPC_CWSTR = ?&const c_ushort;
pub const RPC_BINDING_HANDLE = I_RPC_HANDLE;
pub const handle_t = RPC_BINDING_HANDLE;
pub const UUID = GUID;
pub const struct__RPC_BINDING_VECTOR = extern struct {
Count: c_ulong,
BindingH: [1]RPC_BINDING_HANDLE,
};
pub const RPC_BINDING_VECTOR = struct__RPC_BINDING_VECTOR;
pub const struct__UUID_VECTOR = extern struct {
Count: c_ulong,
Uuid: [1](?&UUID),
};
pub const UUID_VECTOR = struct__UUID_VECTOR;
pub const RPC_IF_HANDLE = ?&c_void;
pub const struct__RPC_IF_ID = extern struct {
Uuid: UUID,
VersMajor: c_ushort,
VersMinor: c_ushort,
};
pub const RPC_IF_ID = struct__RPC_IF_ID;
pub const struct__RPC_PROTSEQ_VECTORA = extern struct {
Count: c_uint,
Protseq: [1](?&u8),
};
pub const RPC_PROTSEQ_VECTORA = struct__RPC_PROTSEQ_VECTORA;
pub const struct__RPC_PROTSEQ_VECTORW = extern struct {
Count: c_uint,
Protseq: [1](?&c_ushort),
};
pub const RPC_PROTSEQ_VECTORW = struct__RPC_PROTSEQ_VECTORW;
pub const struct__RPC_POLICY = extern struct {
Length: c_uint,
EndpointFlags: c_ulong,
NICFlags: c_ulong,
};
pub const RPC_POLICY = struct__RPC_POLICY;
pub const PRPC_POLICY = ?&struct__RPC_POLICY;
pub const RPC_OBJECT_INQ_FN = extern fn(?&UUID, ?&UUID, ?&RPC_STATUS);
pub const RPC_IF_CALLBACK_FN = extern fn(RPC_IF_HANDLE, ?&c_void) -> RPC_STATUS;
pub const RPC_SECURITY_CALLBACK_FN = extern fn(?&c_void);
pub const RPC_STATS_VECTOR = extern struct {
Count: c_uint,
Stats: [1]c_ulong,
};
pub const RPC_IF_ID_VECTOR = extern struct {
Count: c_ulong,
IfId: [1](?&RPC_IF_ID),
};
pub extern fn RpcBindingCopy(SourceBinding: RPC_BINDING_HANDLE, DestinationBinding: ?&RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcBindingFree(Binding: ?&RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcBindingSetOption(hBinding: RPC_BINDING_HANDLE, option: c_ulong, optionValue: ULONG_PTR) -> RPC_STATUS;
pub extern fn RpcBindingInqOption(hBinding: RPC_BINDING_HANDLE, option: c_ulong, pOptionValue: ?&ULONG_PTR) -> RPC_STATUS;
pub extern fn RpcBindingFromStringBindingA(StringBinding: RPC_CSTR, Binding: ?&RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcBindingFromStringBindingW(StringBinding: RPC_WSTR, Binding: ?&RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcSsGetContextBinding(ContextHandle: ?&c_void, Binding: ?&RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcBindingInqObject(Binding: RPC_BINDING_HANDLE, ObjectUuid: ?&UUID) -> RPC_STATUS;
pub extern fn RpcBindingReset(Binding: RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcBindingSetObject(Binding: RPC_BINDING_HANDLE, ObjectUuid: ?&UUID) -> RPC_STATUS;
pub extern fn RpcMgmtInqDefaultProtectLevel(AuthnSvc: c_ulong, AuthnLevel: ?&c_ulong) -> RPC_STATUS;
pub extern fn RpcBindingToStringBindingA(Binding: RPC_BINDING_HANDLE, StringBinding: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcBindingToStringBindingW(Binding: RPC_BINDING_HANDLE, StringBinding: ?&RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcBindingVectorFree(BindingVector: ?&(?&RPC_BINDING_VECTOR)) -> RPC_STATUS;
pub extern fn RpcStringBindingComposeA(ObjUuid: RPC_CSTR, ProtSeq: RPC_CSTR, NetworkAddr: RPC_CSTR, Endpoint: RPC_CSTR, Options: RPC_CSTR, StringBinding: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcStringBindingComposeW(ObjUuid: RPC_WSTR, ProtSeq: RPC_WSTR, NetworkAddr: RPC_WSTR, Endpoint: RPC_WSTR, Options: RPC_WSTR, StringBinding: ?&RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcStringBindingParseA(StringBinding: RPC_CSTR, ObjUuid: ?&RPC_CSTR, Protseq: ?&RPC_CSTR, NetworkAddr: ?&RPC_CSTR, Endpoint: ?&RPC_CSTR, NetworkOptions: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcStringBindingParseW(StringBinding: RPC_WSTR, ObjUuid: ?&RPC_WSTR, Protseq: ?&RPC_WSTR, NetworkAddr: ?&RPC_WSTR, Endpoint: ?&RPC_WSTR, NetworkOptions: ?&RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcStringFreeA(String: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcStringFreeW(String: ?&RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcIfInqId(RpcIfHandle: RPC_IF_HANDLE, RpcIfId: ?&RPC_IF_ID) -> RPC_STATUS;
pub extern fn RpcNetworkIsProtseqValidA(Protseq: RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcNetworkIsProtseqValidW(Protseq: RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcMgmtInqComTimeout(Binding: RPC_BINDING_HANDLE, Timeout: ?&c_uint) -> RPC_STATUS;
pub extern fn RpcMgmtSetComTimeout(Binding: RPC_BINDING_HANDLE, Timeout: c_uint) -> RPC_STATUS;
pub extern fn RpcMgmtSetCancelTimeout(Timeout: c_long) -> RPC_STATUS;
pub extern fn RpcNetworkInqProtseqsA(ProtseqVector: ?&(?&RPC_PROTSEQ_VECTORA)) -> RPC_STATUS;
pub extern fn RpcNetworkInqProtseqsW(ProtseqVector: ?&(?&RPC_PROTSEQ_VECTORW)) -> RPC_STATUS;
pub extern fn RpcObjectInqType(ObjUuid: ?&UUID, TypeUuid: ?&UUID) -> RPC_STATUS;
pub extern fn RpcObjectSetInqFn(InquiryFn: ?&RPC_OBJECT_INQ_FN) -> RPC_STATUS;
pub extern fn RpcObjectSetType(ObjUuid: ?&UUID, TypeUuid: ?&UUID) -> RPC_STATUS;
pub extern fn RpcProtseqVectorFreeA(ProtseqVector: ?&(?&RPC_PROTSEQ_VECTORA)) -> RPC_STATUS;
pub extern fn RpcProtseqVectorFreeW(ProtseqVector: ?&(?&RPC_PROTSEQ_VECTORW)) -> RPC_STATUS;
pub extern fn RpcServerInqBindings(BindingVector: ?&(?&RPC_BINDING_VECTOR)) -> RPC_STATUS;
pub extern fn RpcServerInqIf(IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ?&UUID, MgrEpv: ?&(?&c_void)) -> RPC_STATUS;
pub extern fn RpcServerListen(MinimumCallThreads: c_uint, MaxCalls: c_uint, DontWait: c_uint) -> RPC_STATUS;
pub extern fn RpcServerRegisterIf(IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ?&UUID, MgrEpv: ?&c_void) -> RPC_STATUS;
pub extern fn RpcServerRegisterIfEx(IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ?&UUID, MgrEpv: ?&c_void, Flags: c_uint, MaxCalls: c_uint, IfCallback: ?&RPC_IF_CALLBACK_FN) -> RPC_STATUS;
pub extern fn RpcServerRegisterIf2(IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ?&UUID, MgrEpv: ?&c_void, Flags: c_uint, MaxCalls: c_uint, MaxRpcSize: c_uint, IfCallbackFn: ?&RPC_IF_CALLBACK_FN) -> RPC_STATUS;
pub extern fn RpcServerRegisterIf3(IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ?&UUID, MgrEpv: ?&c_void, Flags: c_uint, MaxCalls: c_uint, MaxRpcSize: c_uint, IfCallback: ?&RPC_IF_CALLBACK_FN, SecurityDescriptor: ?&c_void) -> RPC_STATUS;
pub extern fn RpcServerUnregisterIf(IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ?&UUID, WaitForCallsToComplete: c_uint) -> RPC_STATUS;
pub extern fn RpcServerUnregisterIfEx(IfSpec: RPC_IF_HANDLE, MgrTypeUuid: ?&UUID, RundownContextHandles: c_int) -> RPC_STATUS;
pub extern fn RpcServerUseAllProtseqs(MaxCalls: c_uint, SecurityDescriptor: ?&c_void) -> RPC_STATUS;
pub extern fn RpcServerUseAllProtseqsEx(MaxCalls: c_uint, SecurityDescriptor: ?&c_void, Policy: PRPC_POLICY) -> RPC_STATUS;
pub extern fn RpcServerUseAllProtseqsIf(MaxCalls: c_uint, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: ?&c_void) -> RPC_STATUS;
pub extern fn RpcServerUseAllProtseqsIfEx(MaxCalls: c_uint, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: ?&c_void, Policy: PRPC_POLICY) -> RPC_STATUS;
pub extern fn RpcServerUseProtseqA(Protseq: RPC_CSTR, MaxCalls: c_uint, SecurityDescriptor: ?&c_void) -> RPC_STATUS;
pub extern fn RpcServerUseProtseqExA(Protseq: RPC_CSTR, MaxCalls: c_uint, SecurityDescriptor: ?&c_void, Policy: PRPC_POLICY) -> RPC_STATUS;
pub extern fn RpcServerUseProtseqW(Protseq: RPC_WSTR, MaxCalls: c_uint, SecurityDescriptor: ?&c_void) -> RPC_STATUS;
pub extern fn RpcServerUseProtseqExW(Protseq: RPC_WSTR, MaxCalls: c_uint, SecurityDescriptor: ?&c_void, Policy: PRPC_POLICY) -> RPC_STATUS;
pub extern fn RpcServerUseProtseqEpA(Protseq: RPC_CSTR, MaxCalls: c_uint, Endpoint: RPC_CSTR, SecurityDescriptor: ?&c_void) -> RPC_STATUS;
pub extern fn RpcServerUseProtseqEpExA(Protseq: RPC_CSTR, MaxCalls: c_uint, Endpoint: RPC_CSTR, SecurityDescriptor: ?&c_void, Policy: PRPC_POLICY) -> RPC_STATUS;
pub extern fn RpcServerUseProtseqEpW(Protseq: RPC_WSTR, MaxCalls: c_uint, Endpoint: RPC_WSTR, SecurityDescriptor: ?&c_void) -> RPC_STATUS;
pub extern fn RpcServerUseProtseqEpExW(Protseq: RPC_WSTR, MaxCalls: c_uint, Endpoint: RPC_WSTR, SecurityDescriptor: ?&c_void, Policy: PRPC_POLICY) -> RPC_STATUS;
pub extern fn RpcServerUseProtseqIfA(Protseq: RPC_CSTR, MaxCalls: c_uint, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: ?&c_void) -> RPC_STATUS;
pub extern fn RpcServerUseProtseqIfExA(Protseq: RPC_CSTR, MaxCalls: c_uint, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: ?&c_void, Policy: PRPC_POLICY) -> RPC_STATUS;
pub extern fn RpcServerUseProtseqIfW(Protseq: RPC_WSTR, MaxCalls: c_uint, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: ?&c_void) -> RPC_STATUS;
pub extern fn RpcServerUseProtseqIfExW(Protseq: RPC_WSTR, MaxCalls: c_uint, IfSpec: RPC_IF_HANDLE, SecurityDescriptor: ?&c_void, Policy: PRPC_POLICY) -> RPC_STATUS;
pub extern fn RpcServerYield();
pub extern fn RpcMgmtStatsVectorFree(StatsVector: ?&(?&RPC_STATS_VECTOR)) -> RPC_STATUS;
pub extern fn RpcMgmtInqStats(Binding: RPC_BINDING_HANDLE, Statistics: ?&(?&RPC_STATS_VECTOR)) -> RPC_STATUS;
pub extern fn RpcMgmtIsServerListening(Binding: RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcMgmtStopServerListening(Binding: RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcMgmtWaitServerListen() -> RPC_STATUS;
pub extern fn RpcMgmtSetServerStackSize(ThreadStackSize: c_ulong) -> RPC_STATUS;
pub extern fn RpcSsDontSerializeContext();
pub extern fn RpcMgmtEnableIdleCleanup() -> RPC_STATUS;
pub extern fn RpcMgmtInqIfIds(Binding: RPC_BINDING_HANDLE, IfIdVector: ?&(?&RPC_IF_ID_VECTOR)) -> RPC_STATUS;
pub extern fn RpcIfIdVectorFree(IfIdVector: ?&(?&RPC_IF_ID_VECTOR)) -> RPC_STATUS;
pub extern fn RpcMgmtInqServerPrincNameA(Binding: RPC_BINDING_HANDLE, AuthnSvc: c_ulong, ServerPrincName: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcMgmtInqServerPrincNameW(Binding: RPC_BINDING_HANDLE, AuthnSvc: c_ulong, ServerPrincName: ?&RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcServerInqDefaultPrincNameA(AuthnSvc: c_ulong, PrincName: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcServerInqDefaultPrincNameW(AuthnSvc: c_ulong, PrincName: ?&RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcEpResolveBinding(Binding: RPC_BINDING_HANDLE, IfSpec: RPC_IF_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsBindingInqEntryNameA(Binding: RPC_BINDING_HANDLE, EntryNameSyntax: c_ulong, EntryName: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcNsBindingInqEntryNameW(Binding: RPC_BINDING_HANDLE, EntryNameSyntax: c_ulong, EntryName: ?&RPC_WSTR) -> RPC_STATUS;
pub const RPC_AUTH_IDENTITY_HANDLE = ?&c_void;
pub const RPC_AUTHZ_HANDLE = ?&c_void;
pub const struct__RPC_SECURITY_QOS = extern struct {
Version: c_ulong,
Capabilities: c_ulong,
IdentityTracking: c_ulong,
ImpersonationType: c_ulong,
};
pub const RPC_SECURITY_QOS = struct__RPC_SECURITY_QOS;
pub const PRPC_SECURITY_QOS = ?&struct__RPC_SECURITY_QOS;
pub const struct__SEC_WINNT_AUTH_IDENTITY_W = extern struct {
User: ?&c_ushort,
UserLength: c_ulong,
Domain: ?&c_ushort,
DomainLength: c_ulong,
Password: ?&c_ushort,
PasswordLength: c_ulong,
Flags: c_ulong,
};
pub const SEC_WINNT_AUTH_IDENTITY_W = struct__SEC_WINNT_AUTH_IDENTITY_W;
pub const PSEC_WINNT_AUTH_IDENTITY_W = ?&struct__SEC_WINNT_AUTH_IDENTITY_W;
pub const struct__SEC_WINNT_AUTH_IDENTITY_A = extern struct {
User: ?&u8,
UserLength: c_ulong,
Domain: ?&u8,
DomainLength: c_ulong,
Password: ?&u8,
PasswordLength: c_ulong,
Flags: c_ulong,
};
pub const SEC_WINNT_AUTH_IDENTITY_A = struct__SEC_WINNT_AUTH_IDENTITY_A;
pub const PSEC_WINNT_AUTH_IDENTITY_A = ?&struct__SEC_WINNT_AUTH_IDENTITY_A;
pub const struct__RPC_HTTP_TRANSPORT_CREDENTIALS_W = extern struct {
TransportCredentials: ?&SEC_WINNT_AUTH_IDENTITY_W,
Flags: c_ulong,
AuthenticationTarget: c_ulong,
NumberOfAuthnSchemes: c_ulong,
AuthnSchemes: ?&c_ulong,
ServerCertificateSubject: ?&c_ushort,
};
pub const RPC_HTTP_TRANSPORT_CREDENTIALS_W = struct__RPC_HTTP_TRANSPORT_CREDENTIALS_W;
pub const PRPC_HTTP_TRANSPORT_CREDENTIALS_W = ?&struct__RPC_HTTP_TRANSPORT_CREDENTIALS_W;
pub const struct__RPC_HTTP_TRANSPORT_CREDENTIALS_A = extern struct {
TransportCredentials: ?&SEC_WINNT_AUTH_IDENTITY_A,
Flags: c_ulong,
AuthenticationTarget: c_ulong,
NumberOfAuthnSchemes: c_ulong,
AuthnSchemes: ?&c_ulong,
ServerCertificateSubject: ?&u8,
};
pub const RPC_HTTP_TRANSPORT_CREDENTIALS_A = struct__RPC_HTTP_TRANSPORT_CREDENTIALS_A;
pub const PRPC_HTTP_TRANSPORT_CREDENTIALS_A = ?&struct__RPC_HTTP_TRANSPORT_CREDENTIALS_A;
pub const struct__RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W = extern struct {
TransportCredentials: ?&SEC_WINNT_AUTH_IDENTITY_W,
Flags: c_ulong,
AuthenticationTarget: c_ulong,
NumberOfAuthnSchemes: c_ulong,
AuthnSchemes: ?&c_ulong,
ServerCertificateSubject: ?&c_ushort,
ProxyCredentials: ?&SEC_WINNT_AUTH_IDENTITY_W,
NumberOfProxyAuthnSchemes: c_ulong,
ProxyAuthnSchemes: ?&c_ulong,
};
pub const RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W = struct__RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W;
pub const PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_W = ?&struct__RPC_HTTP_TRANSPORT_CREDENTIALS_V2_W;
pub const struct__RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A = extern struct {
TransportCredentials: ?&SEC_WINNT_AUTH_IDENTITY_A,
Flags: c_ulong,
AuthenticationTarget: c_ulong,
NumberOfAuthnSchemes: c_ulong,
AuthnSchemes: ?&c_ulong,
ServerCertificateSubject: ?&u8,
ProxyCredentials: ?&SEC_WINNT_AUTH_IDENTITY_A,
NumberOfProxyAuthnSchemes: c_ulong,
ProxyAuthnSchemes: ?&c_ulong,
};
pub const RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A = struct__RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A;
pub const PRPC_HTTP_TRANSPORT_CREDENTIALS_V2_A = ?&struct__RPC_HTTP_TRANSPORT_CREDENTIALS_V2_A;
pub const struct__RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W = extern struct {
TransportCredentials: RPC_AUTH_IDENTITY_HANDLE,
Flags: c_ulong,
AuthenticationTarget: c_ulong,
NumberOfAuthnSchemes: c_ulong,
AuthnSchemes: ?&c_ulong,
ServerCertificateSubject: ?&c_ushort,
ProxyCredentials: RPC_AUTH_IDENTITY_HANDLE,
NumberOfProxyAuthnSchemes: c_ulong,
ProxyAuthnSchemes: ?&c_ulong,
};
pub const RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W = struct__RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W;
pub const PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_W = ?&struct__RPC_HTTP_TRANSPORT_CREDENTIALS_V3_W;
pub const struct__RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A = extern struct {
TransportCredentials: RPC_AUTH_IDENTITY_HANDLE,
Flags: c_ulong,
AuthenticationTarget: c_ulong,
NumberOfAuthnSchemes: c_ulong,
AuthnSchemes: ?&c_ulong,
ServerCertificateSubject: ?&u8,
ProxyCredentials: RPC_AUTH_IDENTITY_HANDLE,
NumberOfProxyAuthnSchemes: c_ulong,
ProxyAuthnSchemes: ?&c_ulong,
};
pub const RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A = struct__RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A;
pub const PRPC_HTTP_TRANSPORT_CREDENTIALS_V3_A = ?&struct__RPC_HTTP_TRANSPORT_CREDENTIALS_V3_A;
pub const struct__RPC_SECURITY_QOS_V2_W = @OpaqueType();
pub const RPC_SECURITY_QOS_V2_W = struct__RPC_SECURITY_QOS_V2_W;
pub const PRPC_SECURITY_QOS_V2_W = ?&struct__RPC_SECURITY_QOS_V2_W;
pub const struct__RPC_SECURITY_QOS_V2_A = @OpaqueType();
pub const RPC_SECURITY_QOS_V2_A = struct__RPC_SECURITY_QOS_V2_A;
pub const PRPC_SECURITY_QOS_V2_A = ?&struct__RPC_SECURITY_QOS_V2_A;
pub const struct__RPC_SECURITY_QOS_V3_W = @OpaqueType();
pub const RPC_SECURITY_QOS_V3_W = struct__RPC_SECURITY_QOS_V3_W;
pub const PRPC_SECURITY_QOS_V3_W = ?&struct__RPC_SECURITY_QOS_V3_W;
pub const struct__RPC_SECURITY_QOS_V3_A = @OpaqueType();
pub const RPC_SECURITY_QOS_V3_A = struct__RPC_SECURITY_QOS_V3_A;
pub const PRPC_SECURITY_QOS_V3_A = ?&struct__RPC_SECURITY_QOS_V3_A;
pub const struct__RPC_SECURITY_QOS_V4_W = @OpaqueType();
pub const RPC_SECURITY_QOS_V4_W = struct__RPC_SECURITY_QOS_V4_W;
pub const PRPC_SECURITY_QOS_V4_W = ?&struct__RPC_SECURITY_QOS_V4_W;
pub const struct__RPC_SECURITY_QOS_V4_A = @OpaqueType();
pub const RPC_SECURITY_QOS_V4_A = struct__RPC_SECURITY_QOS_V4_A;
pub const PRPC_SECURITY_QOS_V4_A = ?&struct__RPC_SECURITY_QOS_V4_A;
pub const struct__RPC_SECURITY_QOS_V5_W = @OpaqueType();
pub const RPC_SECURITY_QOS_V5_W = struct__RPC_SECURITY_QOS_V5_W;
pub const PRPC_SECURITY_QOS_V5_W = ?&struct__RPC_SECURITY_QOS_V5_W;
pub const struct__RPC_SECURITY_QOS_V5_A = @OpaqueType();
pub const RPC_SECURITY_QOS_V5_A = struct__RPC_SECURITY_QOS_V5_A;
pub const PRPC_SECURITY_QOS_V5_A = ?&struct__RPC_SECURITY_QOS_V5_A;
pub const struct__RPC_BINDING_HANDLE_TEMPLATE_V1_W = @OpaqueType();
pub const RPC_BINDING_HANDLE_TEMPLATE_V1_W = struct__RPC_BINDING_HANDLE_TEMPLATE_V1_W;
pub const PRPC_BINDING_HANDLE_TEMPLATE_V1_W = ?&struct__RPC_BINDING_HANDLE_TEMPLATE_V1_W;
pub const struct__RPC_BINDING_HANDLE_TEMPLATE_V1_A = @OpaqueType();
pub const RPC_BINDING_HANDLE_TEMPLATE_V1_A = struct__RPC_BINDING_HANDLE_TEMPLATE_V1_A;
pub const PRPC_BINDING_HANDLE_TEMPLATE_V1_A = ?&struct__RPC_BINDING_HANDLE_TEMPLATE_V1_A;
pub const struct__RPC_BINDING_HANDLE_SECURITY_V1_W = extern struct {
Version: c_ulong,
ServerPrincName: ?&c_ushort,
AuthnLevel: c_ulong,
AuthnSvc: c_ulong,
AuthIdentity: ?&SEC_WINNT_AUTH_IDENTITY_W,
SecurityQos: ?&RPC_SECURITY_QOS,
};
pub const RPC_BINDING_HANDLE_SECURITY_V1_W = struct__RPC_BINDING_HANDLE_SECURITY_V1_W;
pub const PRPC_BINDING_HANDLE_SECURITY_V1_W = ?&struct__RPC_BINDING_HANDLE_SECURITY_V1_W;
pub const struct__RPC_BINDING_HANDLE_SECURITY_V1_A = extern struct {
Version: c_ulong,
ServerPrincName: ?&u8,
AuthnLevel: c_ulong,
AuthnSvc: c_ulong,
AuthIdentity: ?&SEC_WINNT_AUTH_IDENTITY_A,
SecurityQos: ?&RPC_SECURITY_QOS,
};
pub const RPC_BINDING_HANDLE_SECURITY_V1_A = struct__RPC_BINDING_HANDLE_SECURITY_V1_A;
pub const PRPC_BINDING_HANDLE_SECURITY_V1_A = ?&struct__RPC_BINDING_HANDLE_SECURITY_V1_A;
pub const struct__RPC_BINDING_HANDLE_OPTIONS_V1 = extern struct {
Version: c_ulong,
Flags: c_ulong,
ComTimeout: c_ulong,
CallTimeout: c_ulong,
};
pub const RPC_BINDING_HANDLE_OPTIONS_V1 = struct__RPC_BINDING_HANDLE_OPTIONS_V1;
pub const PRPC_BINDING_HANDLE_OPTIONS_V1 = ?&struct__RPC_BINDING_HANDLE_OPTIONS_V1;
pub extern fn RpcBindingCreateA(Template: ?&RPC_BINDING_HANDLE_TEMPLATE_V1_A, Security: ?&RPC_BINDING_HANDLE_SECURITY_V1_A, Options: ?&RPC_BINDING_HANDLE_OPTIONS_V1, Binding: ?&RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcBindingCreateW(Template: ?&RPC_BINDING_HANDLE_TEMPLATE_V1_W, Security: ?&RPC_BINDING_HANDLE_SECURITY_V1_W, Options: ?&RPC_BINDING_HANDLE_OPTIONS_V1, Binding: ?&RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcBindingGetTrainingContextHandle(Binding: RPC_BINDING_HANDLE, ContextHandle: ?&(?&c_void)) -> RPC_STATUS;
pub extern fn RpcServerInqBindingHandle(Binding: ?&RPC_BINDING_HANDLE) -> RPC_STATUS;
pub const RPCHTTP_RS_REDIRECT: c_int = 1;
pub const RPCHTTP_RS_ACCESS_1: c_int = 2;
pub const RPCHTTP_RS_SESSION: c_int = 3;
pub const RPCHTTP_RS_ACCESS_2: c_int = 4;
pub const RPCHTTP_RS_INTERFACE: c_int = 5;
pub const enum__RPC_HTTP_REDIRECTOR_STAGE = c_int;
pub const RPCHTTP_RS_REDIRECT: c_int = 1;
pub const RPCHTTP_RS_ACCESS_1: c_int = 2;
pub const RPCHTTP_RS_SESSION: c_int = 3;
pub const RPCHTTP_RS_ACCESS_2: c_int = 4;
pub const RPCHTTP_RS_INTERFACE: c_int = 5;
pub const enum__RPC_HTTP_REDIRECTOR_STAGE = c_int;
pub const RPC_HTTP_REDIRECTOR_STAGE = enum__RPC_HTTP_REDIRECTOR_STAGE;
pub const RPC_NEW_HTTP_PROXY_CHANNEL = ?extern fn(RPC_HTTP_REDIRECTOR_STAGE, RPC_WSTR, RPC_WSTR, RPC_WSTR, RPC_WSTR, ?&c_void, ?&c_void, ?&c_void, ?&c_void, c_ulong, ?&RPC_WSTR, ?&RPC_WSTR) -> RPC_STATUS;
pub const RPC_HTTP_PROXY_FREE_STRING = ?extern fn(RPC_WSTR);
pub extern fn RpcImpersonateClient(BindingHandle: RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcImpersonateClient2(BindingHandle: RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcRevertToSelfEx(BindingHandle: RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcRevertToSelf() -> RPC_STATUS;
pub extern fn RpcBindingInqAuthClientA(ClientBinding: RPC_BINDING_HANDLE, Privs: ?&RPC_AUTHZ_HANDLE, ServerPrincName: ?&RPC_CSTR, AuthnLevel: ?&c_ulong, AuthnSvc: ?&c_ulong, AuthzSvc: ?&c_ulong) -> RPC_STATUS;
pub extern fn RpcBindingInqAuthClientW(ClientBinding: RPC_BINDING_HANDLE, Privs: ?&RPC_AUTHZ_HANDLE, ServerPrincName: ?&RPC_WSTR, AuthnLevel: ?&c_ulong, AuthnSvc: ?&c_ulong, AuthzSvc: ?&c_ulong) -> RPC_STATUS;
pub extern fn RpcBindingInqAuthClientExA(ClientBinding: RPC_BINDING_HANDLE, Privs: ?&RPC_AUTHZ_HANDLE, ServerPrincName: ?&RPC_CSTR, AuthnLevel: ?&c_ulong, AuthnSvc: ?&c_ulong, AuthzSvc: ?&c_ulong, Flags: c_ulong) -> RPC_STATUS;
pub extern fn RpcBindingInqAuthClientExW(ClientBinding: RPC_BINDING_HANDLE, Privs: ?&RPC_AUTHZ_HANDLE, ServerPrincName: ?&RPC_WSTR, AuthnLevel: ?&c_ulong, AuthnSvc: ?&c_ulong, AuthzSvc: ?&c_ulong, Flags: c_ulong) -> RPC_STATUS;
pub extern fn RpcBindingInqAuthInfoA(Binding: RPC_BINDING_HANDLE, ServerPrincName: ?&RPC_CSTR, AuthnLevel: ?&c_ulong, AuthnSvc: ?&c_ulong, AuthIdentity: ?&RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: ?&c_ulong) -> RPC_STATUS;
pub extern fn RpcBindingInqAuthInfoW(Binding: RPC_BINDING_HANDLE, ServerPrincName: ?&RPC_WSTR, AuthnLevel: ?&c_ulong, AuthnSvc: ?&c_ulong, AuthIdentity: ?&RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: ?&c_ulong) -> RPC_STATUS;
pub extern fn RpcBindingSetAuthInfoA(Binding: RPC_BINDING_HANDLE, ServerPrincName: RPC_CSTR, AuthnLevel: c_ulong, AuthnSvc: c_ulong, AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: c_ulong) -> RPC_STATUS;
pub extern fn RpcBindingSetAuthInfoExA(Binding: RPC_BINDING_HANDLE, ServerPrincName: RPC_CSTR, AuthnLevel: c_ulong, AuthnSvc: c_ulong, AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: c_ulong, SecurityQos: ?&RPC_SECURITY_QOS) -> RPC_STATUS;
pub extern fn RpcBindingSetAuthInfoW(Binding: RPC_BINDING_HANDLE, ServerPrincName: RPC_WSTR, AuthnLevel: c_ulong, AuthnSvc: c_ulong, AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: c_ulong) -> RPC_STATUS;
pub extern fn RpcBindingSetAuthInfoExW(Binding: RPC_BINDING_HANDLE, ServerPrincName: RPC_WSTR, AuthnLevel: c_ulong, AuthnSvc: c_ulong, AuthIdentity: RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: c_ulong, SecurityQOS: ?&RPC_SECURITY_QOS) -> RPC_STATUS;
pub extern fn RpcBindingInqAuthInfoExA(Binding: RPC_BINDING_HANDLE, ServerPrincName: ?&RPC_CSTR, AuthnLevel: ?&c_ulong, AuthnSvc: ?&c_ulong, AuthIdentity: ?&RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: ?&c_ulong, RpcQosVersion: c_ulong, SecurityQOS: ?&RPC_SECURITY_QOS) -> RPC_STATUS;
pub extern fn RpcBindingInqAuthInfoExW(Binding: RPC_BINDING_HANDLE, ServerPrincName: ?&RPC_WSTR, AuthnLevel: ?&c_ulong, AuthnSvc: ?&c_ulong, AuthIdentity: ?&RPC_AUTH_IDENTITY_HANDLE, AuthzSvc: ?&c_ulong, RpcQosVersion: c_ulong, SecurityQOS: ?&RPC_SECURITY_QOS) -> RPC_STATUS;
pub const RPC_AUTH_KEY_RETRIEVAL_FN = ?extern fn(?&c_void, RPC_WSTR, c_ulong, ?&(?&c_void), ?&RPC_STATUS);
pub extern fn RpcServerCompleteSecurityCallback(BindingHandle: RPC_BINDING_HANDLE, Status: RPC_STATUS) -> RPC_STATUS;
pub extern fn RpcServerRegisterAuthInfoA(ServerPrincName: RPC_CSTR, AuthnSvc: c_ulong, GetKeyFn: RPC_AUTH_KEY_RETRIEVAL_FN, Arg: ?&c_void) -> RPC_STATUS;
pub extern fn RpcServerRegisterAuthInfoW(ServerPrincName: RPC_WSTR, AuthnSvc: c_ulong, GetKeyFn: RPC_AUTH_KEY_RETRIEVAL_FN, Arg: ?&c_void) -> RPC_STATUS;
pub const RPC_CLIENT_INFORMATION1 = extern struct {
UserName: ?&u8,
ComputerName: ?&u8,
Privilege: c_ushort,
AuthFlags: c_ulong,
};
pub const PRPC_CLIENT_INFORMATION1 = ?&extern struct {
UserName: ?&u8,
ComputerName: ?&u8,
Privilege: c_ushort,
AuthFlags: c_ulong,
};
pub extern fn RpcBindingServerFromClient(ClientBinding: RPC_BINDING_HANDLE, ServerBinding: ?&RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcRaiseException(exception: RPC_STATUS) -> noreturn;
pub extern fn RpcTestCancel() -> RPC_STATUS;
pub extern fn RpcServerTestCancel(BindingHandle: RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcCancelThread(Thread: ?&c_void) -> RPC_STATUS;
pub extern fn RpcCancelThreadEx(Thread: ?&c_void, Timeout: c_long) -> RPC_STATUS;
pub extern fn UuidCreate(Uuid: ?&UUID) -> RPC_STATUS;
pub extern fn UuidCreateSequential(Uuid: ?&UUID) -> RPC_STATUS;
pub extern fn UuidToStringA(Uuid: ?&const UUID, StringUuid: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn UuidFromStringA(StringUuid: RPC_CSTR, Uuid: ?&UUID) -> RPC_STATUS;
pub extern fn UuidToStringW(Uuid: ?&const UUID, StringUuid: ?&RPC_WSTR) -> RPC_STATUS;
pub extern fn UuidFromStringW(StringUuid: RPC_WSTR, Uuid: ?&UUID) -> RPC_STATUS;
pub extern fn UuidCompare(Uuid1: ?&UUID, Uuid2: ?&UUID, Status: ?&RPC_STATUS) -> c_int;
pub extern fn UuidCreateNil(NilUuid: ?&UUID) -> RPC_STATUS;
pub extern fn UuidEqual(Uuid1: ?&UUID, Uuid2: ?&UUID, Status: ?&RPC_STATUS) -> c_int;
pub extern fn UuidHash(Uuid: ?&UUID, Status: ?&RPC_STATUS) -> c_ushort;
pub extern fn UuidIsNil(Uuid: ?&UUID, Status: ?&RPC_STATUS) -> c_int;
pub extern fn RpcEpRegisterNoReplaceA(IfSpec: RPC_IF_HANDLE, BindingVector: ?&RPC_BINDING_VECTOR, UuidVector: ?&UUID_VECTOR, Annotation: RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcEpRegisterNoReplaceW(IfSpec: RPC_IF_HANDLE, BindingVector: ?&RPC_BINDING_VECTOR, UuidVector: ?&UUID_VECTOR, Annotation: RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcEpRegisterA(IfSpec: RPC_IF_HANDLE, BindingVector: ?&RPC_BINDING_VECTOR, UuidVector: ?&UUID_VECTOR, Annotation: RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcEpRegisterW(IfSpec: RPC_IF_HANDLE, BindingVector: ?&RPC_BINDING_VECTOR, UuidVector: ?&UUID_VECTOR, Annotation: RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcEpUnregister(IfSpec: RPC_IF_HANDLE, BindingVector: ?&RPC_BINDING_VECTOR, UuidVector: ?&UUID_VECTOR) -> RPC_STATUS;
pub extern fn DceErrorInqTextA(RpcStatus: RPC_STATUS, ErrorText: RPC_CSTR) -> RPC_STATUS;
pub extern fn DceErrorInqTextW(RpcStatus: RPC_STATUS, ErrorText: RPC_WSTR) -> RPC_STATUS;
pub const RPC_EP_INQ_HANDLE = ?&I_RPC_HANDLE;
pub extern fn RpcMgmtEpEltInqBegin(EpBinding: RPC_BINDING_HANDLE, InquiryType: c_ulong, IfId: ?&RPC_IF_ID, VersOption: c_ulong, ObjectUuid: ?&UUID, InquiryContext: ?&RPC_EP_INQ_HANDLE) -> RPC_STATUS;
pub extern fn RpcMgmtEpEltInqDone(InquiryContext: ?&RPC_EP_INQ_HANDLE) -> RPC_STATUS;
pub extern fn RpcMgmtEpEltInqNextA(InquiryContext: RPC_EP_INQ_HANDLE, IfId: ?&RPC_IF_ID, Binding: ?&RPC_BINDING_HANDLE, ObjectUuid: ?&UUID, Annotation: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcMgmtEpEltInqNextW(InquiryContext: RPC_EP_INQ_HANDLE, IfId: ?&RPC_IF_ID, Binding: ?&RPC_BINDING_HANDLE, ObjectUuid: ?&UUID, Annotation: ?&RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcMgmtEpUnregister(EpBinding: RPC_BINDING_HANDLE, IfId: ?&RPC_IF_ID, Binding: RPC_BINDING_HANDLE, ObjectUuid: ?&UUID) -> RPC_STATUS;
pub const RPC_MGMT_AUTHORIZATION_FN = ?extern fn(RPC_BINDING_HANDLE, c_ulong, ?&RPC_STATUS) -> c_int;
pub extern fn RpcMgmtSetAuthorizationFn(AuthorizationFn: RPC_MGMT_AUTHORIZATION_FN) -> RPC_STATUS;
pub extern fn RpcExceptionFilter(ExceptionCode: c_ulong) -> c_int;
pub const RPC_INTERFACE_GROUP = ?&c_void;
pub const PRPC_INTERFACE_GROUP = ?&(?&c_void);
pub const RPC_ENDPOINT_TEMPLATEW = extern struct {
Version: c_ulong,
ProtSeq: RPC_WSTR,
Endpoint: RPC_WSTR,
SecurityDescriptor: ?&c_void,
Backlog: c_ulong,
};
pub const PRPC_ENDPOINT_TEMPLATEW = ?&extern struct {
Version: c_ulong,
ProtSeq: RPC_WSTR,
Endpoint: RPC_WSTR,
SecurityDescriptor: ?&c_void,
Backlog: c_ulong,
};
pub const RPC_ENDPOINT_TEMPLATEA = extern struct {
Version: c_ulong,
ProtSeq: RPC_CSTR,
Endpoint: RPC_CSTR,
SecurityDescriptor: ?&c_void,
Backlog: c_ulong,
};
pub const PRPC_ENDPOINT_TEMPLATEA = ?&extern struct {
Version: c_ulong,
ProtSeq: RPC_CSTR,
Endpoint: RPC_CSTR,
SecurityDescriptor: ?&c_void,
Backlog: c_ulong,
};
pub const RPC_INTERFACE_TEMPLATEA = extern struct {
Version: c_ulong,
IfSpec: RPC_IF_HANDLE,
MgrTypeUuid: ?&UUID,
MgrEpv: ?&c_void,
Flags: c_uint,
MaxCalls: c_uint,
MaxRpcSize: c_uint,
IfCallback: ?&RPC_IF_CALLBACK_FN,
UuidVector: ?&UUID_VECTOR,
Annotation: RPC_CSTR,
SecurityDescriptor: ?&c_void,
};
pub const PRPC_INTERFACE_TEMPLATEA = ?&extern struct {
Version: c_ulong,
IfSpec: RPC_IF_HANDLE,
MgrTypeUuid: ?&UUID,
MgrEpv: ?&c_void,
Flags: c_uint,
MaxCalls: c_uint,
MaxRpcSize: c_uint,
IfCallback: ?&RPC_IF_CALLBACK_FN,
UuidVector: ?&UUID_VECTOR,
Annotation: RPC_CSTR,
SecurityDescriptor: ?&c_void,
};
pub const RPC_INTERFACE_TEMPLATEW = extern struct {
Version: c_ulong,
IfSpec: RPC_IF_HANDLE,
MgrTypeUuid: ?&UUID,
MgrEpv: ?&c_void,
Flags: c_uint,
MaxCalls: c_uint,
MaxRpcSize: c_uint,
IfCallback: ?&RPC_IF_CALLBACK_FN,
UuidVector: ?&UUID_VECTOR,
Annotation: RPC_WSTR,
SecurityDescriptor: ?&c_void,
};
pub const PRPC_INTERFACE_TEMPLATEW = ?&extern struct {
Version: c_ulong,
IfSpec: RPC_IF_HANDLE,
MgrTypeUuid: ?&UUID,
MgrEpv: ?&c_void,
Flags: c_uint,
MaxCalls: c_uint,
MaxRpcSize: c_uint,
IfCallback: ?&RPC_IF_CALLBACK_FN,
UuidVector: ?&UUID_VECTOR,
Annotation: RPC_WSTR,
SecurityDescriptor: ?&c_void,
};
pub const RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN = extern fn(RPC_INTERFACE_GROUP, ?&c_void, c_ulong);
pub extern fn RpcServerInterfaceGroupCreateW(Interfaces: ?&RPC_INTERFACE_TEMPLATEW, NumIfs: c_ulong, Endpoints: ?&RPC_ENDPOINT_TEMPLATEW, NumEndpoints: c_ulong, IdlePeriod: c_ulong, IdleCallbackFn: ?&RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN, IdleCallbackContext: ?&c_void, IfGroup: PRPC_INTERFACE_GROUP) -> RPC_STATUS;
pub extern fn RpcServerInterfaceGroupCreateA(Interfaces: ?&RPC_INTERFACE_TEMPLATEA, NumIfs: c_ulong, Endpoints: ?&RPC_ENDPOINT_TEMPLATEA, NumEndpoints: c_ulong, IdlePeriod: c_ulong, IdleCallbackFn: ?&RPC_INTERFACE_GROUP_IDLE_CALLBACK_FN, IdleCallbackContext: ?&c_void, IfGroup: PRPC_INTERFACE_GROUP) -> RPC_STATUS;
pub extern fn RpcServerInterfaceGroupClose(IfGroup: RPC_INTERFACE_GROUP) -> RPC_STATUS;
pub extern fn RpcServerInterfaceGroupActivate(IfGroup: RPC_INTERFACE_GROUP) -> RPC_STATUS;
pub extern fn RpcServerInterfaceGroupDeactivate(IfGroup: RPC_INTERFACE_GROUP, ForceDeactivation: c_ulong) -> RPC_STATUS;
pub extern fn RpcServerInterfaceGroupInqBindings(IfGroup: RPC_INTERFACE_GROUP, BindingVector: ?&(?&RPC_BINDING_VECTOR)) -> RPC_STATUS;
pub const struct__RPC_VERSION = extern struct {
MajorVersion: c_ushort,
MinorVersion: c_ushort,
};
pub const RPC_VERSION = struct__RPC_VERSION;
pub const struct__RPC_SYNTAX_IDENTIFIER = extern struct {
SyntaxGUID: GUID,
SyntaxVersion: RPC_VERSION,
};
pub const RPC_SYNTAX_IDENTIFIER = struct__RPC_SYNTAX_IDENTIFIER;
pub const PRPC_SYNTAX_IDENTIFIER = ?&struct__RPC_SYNTAX_IDENTIFIER;
pub const struct__RPC_MESSAGE = extern struct {
Handle: RPC_BINDING_HANDLE,
DataRepresentation: c_ulong,
Buffer: ?&c_void,
BufferLength: c_uint,
ProcNum: c_uint,
TransferSyntax: PRPC_SYNTAX_IDENTIFIER,
RpcInterfaceInformation: ?&c_void,
ReservedForRuntime: ?&c_void,
ManagerEpv: ?&c_void,
ImportContext: ?&c_void,
RpcFlags: c_ulong,
};
pub const RPC_MESSAGE = struct__RPC_MESSAGE;
pub const PRPC_MESSAGE = ?&struct__RPC_MESSAGE;
pub const RPC_FORWARD_FUNCTION = extern fn(?&UUID, ?&RPC_VERSION, ?&UUID, ?&u8, ?&(?&c_void)) -> RPC_STATUS;
pub const PROTOCOL_NOT_LOADED: c_int = 1;
pub const PROTOCOL_LOADED: c_int = 2;
pub const PROTOCOL_ADDRESS_CHANGE: c_int = 3;
pub const enum_RPC_ADDRESS_CHANGE_TYPE = c_int;
pub const RPC_ADDRESS_CHANGE_FN = extern fn(?&c_void);
pub const RPC_DISPATCH_FUNCTION = ?extern fn(PRPC_MESSAGE);
pub const RPC_DISPATCH_TABLE = extern struct {
DispatchTableCount: c_uint,
DispatchTable: ?&RPC_DISPATCH_FUNCTION,
Reserved: LONG_PTR,
};
pub const PRPC_DISPATCH_TABLE = ?&extern struct {
DispatchTableCount: c_uint,
DispatchTable: ?&RPC_DISPATCH_FUNCTION,
Reserved: LONG_PTR,
};
pub const struct__RPC_PROTSEQ_ENDPOINT = extern struct {
RpcProtocolSequence: ?&u8,
Endpoint: ?&u8,
};
pub const RPC_PROTSEQ_ENDPOINT = struct__RPC_PROTSEQ_ENDPOINT;
pub const PRPC_PROTSEQ_ENDPOINT = ?&struct__RPC_PROTSEQ_ENDPOINT;
pub const struct__RPC_SERVER_INTERFACE = extern struct {
Length: c_uint,
InterfaceId: RPC_SYNTAX_IDENTIFIER,
TransferSyntax: RPC_SYNTAX_IDENTIFIER,
DispatchTable: PRPC_DISPATCH_TABLE,
RpcProtseqEndpointCount: c_uint,
RpcProtseqEndpoint: PRPC_PROTSEQ_ENDPOINT,
DefaultManagerEpv: ?&c_void,
InterpreterInfo: ?&const c_void,
Flags: c_uint,
};
pub const RPC_SERVER_INTERFACE = struct__RPC_SERVER_INTERFACE;
pub const PRPC_SERVER_INTERFACE = ?&struct__RPC_SERVER_INTERFACE;
pub const struct__RPC_CLIENT_INTERFACE = extern struct {
Length: c_uint,
InterfaceId: RPC_SYNTAX_IDENTIFIER,
TransferSyntax: RPC_SYNTAX_IDENTIFIER,
DispatchTable: PRPC_DISPATCH_TABLE,
RpcProtseqEndpointCount: c_uint,
RpcProtseqEndpoint: PRPC_PROTSEQ_ENDPOINT,
Reserved: ULONG_PTR,
InterpreterInfo: ?&const c_void,
Flags: c_uint,
};
pub const RPC_CLIENT_INTERFACE = struct__RPC_CLIENT_INTERFACE;
pub const PRPC_CLIENT_INTERFACE = ?&struct__RPC_CLIENT_INTERFACE;
pub extern fn I_RpcNegotiateTransferSyntax(Message: ?&RPC_MESSAGE) -> RPC_STATUS;
pub extern fn I_RpcGetBuffer(Message: ?&RPC_MESSAGE) -> RPC_STATUS;
pub extern fn I_RpcGetBufferWithObject(Message: ?&RPC_MESSAGE, ObjectUuid: ?&UUID) -> RPC_STATUS;
pub extern fn I_RpcSendReceive(Message: ?&RPC_MESSAGE) -> RPC_STATUS;
pub extern fn I_RpcFreeBuffer(Message: ?&RPC_MESSAGE) -> RPC_STATUS;
pub extern fn I_RpcSend(Message: PRPC_MESSAGE) -> RPC_STATUS;
pub extern fn I_RpcReceive(Message: PRPC_MESSAGE, Size: c_uint) -> RPC_STATUS;
pub extern fn I_RpcFreePipeBuffer(Message: ?&RPC_MESSAGE) -> RPC_STATUS;
pub extern fn I_RpcReallocPipeBuffer(Message: PRPC_MESSAGE, NewSize: c_uint) -> RPC_STATUS;
pub const I_RPC_MUTEX = ?&c_void;
pub extern fn I_RpcRequestMutex(Mutex: ?&I_RPC_MUTEX);
pub extern fn I_RpcClearMutex(Mutex: I_RPC_MUTEX);
pub extern fn I_RpcDeleteMutex(Mutex: I_RPC_MUTEX);
pub extern fn I_RpcAllocate(Size: c_uint) -> ?&c_void;
pub extern fn I_RpcFree(Object: ?&c_void);
pub extern fn I_RpcClntChkSystemHandleLeak(CallObj: ?&c_void);
pub extern fn I_RpcSvrChkSystemHandleLeak(CallObj: ?&c_void);
pub extern fn I_RpcClntSetSystemHandle(Handle: ?&c_void, Type: u8, AccessMask: c_ulong, CallObj: ?&c_void);
pub extern fn I_RpcSvrSetSystemHandle(Handle: ?&c_void, Type: u8, AccessMask: c_ulong, CallObj: ?&c_void);
pub extern fn I_RpcClntGetSystemHandle(pMemory: ?&(?&u8), Type: u8, AccessMask: c_ulong, CallObj: ?&c_void);
pub extern fn I_RpcSvrGetSystemHandle(ppMemory: ?&(?&u8), Type: u8, AccessMask: c_ulong, CallObj: ?&c_void);
pub extern fn I_RpcPauseExecution(Milliseconds: c_ulong);
pub extern fn I_RpcGetExtendedError() -> RPC_STATUS;
pub const PRPC_RUNDOWN = ?extern fn(?&c_void);
pub extern fn I_RpcMonitorAssociation(Handle: RPC_BINDING_HANDLE, RundownRoutine: PRPC_RUNDOWN, Context: ?&c_void) -> RPC_STATUS;
pub extern fn I_RpcStopMonitorAssociation(Handle: RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn I_RpcGetCurrentCallHandle() -> RPC_BINDING_HANDLE;
pub extern fn I_RpcGetAssociationContext(BindingHandle: RPC_BINDING_HANDLE, AssociationContext: ?&(?&c_void)) -> RPC_STATUS;
pub extern fn I_RpcGetServerContextList(BindingHandle: RPC_BINDING_HANDLE) -> ?&c_void;
pub extern fn I_RpcSetServerContextList(BindingHandle: RPC_BINDING_HANDLE, ServerContextList: ?&c_void);
pub extern fn I_RpcNsInterfaceExported(EntryNameSyntax: c_ulong, EntryName: ?&c_ushort, RpcInterfaceInformation: ?&RPC_SERVER_INTERFACE) -> RPC_STATUS;
pub extern fn I_RpcNsInterfaceUnexported(EntryNameSyntax: c_ulong, EntryName: ?&c_ushort, RpcInterfaceInformation: ?&RPC_SERVER_INTERFACE) -> RPC_STATUS;
pub extern fn I_RpcBindingToStaticStringBindingW(Binding: RPC_BINDING_HANDLE, StringBinding: ?&(?&c_ushort)) -> RPC_STATUS;
pub extern fn I_RpcBindingInqSecurityContext(Binding: RPC_BINDING_HANDLE, SecurityContextHandle: ?&(?&c_void)) -> RPC_STATUS;
pub const struct__RPC_SEC_CONTEXT_KEY_INFO = extern struct {
EncryptAlgorithm: c_ulong,
KeySize: c_ulong,
SignatureAlgorithm: c_ulong,
};
pub const RPC_SEC_CONTEXT_KEY_INFO = struct__RPC_SEC_CONTEXT_KEY_INFO;
pub const PRPC_SEC_CONTEXT_KEY_INFO = ?&struct__RPC_SEC_CONTEXT_KEY_INFO;
pub extern fn I_RpcBindingInqSecurityContextKeyInfo(Binding: RPC_BINDING_HANDLE, KeyInfo: ?&c_void) -> RPC_STATUS;
pub extern fn I_RpcBindingInqWireIdForSnego(Binding: RPC_BINDING_HANDLE, WireId: ?&u8) -> RPC_STATUS;
pub extern fn I_RpcBindingInqMarshalledTargetInfo(Binding: RPC_BINDING_HANDLE, MarshalledTargetInfoSize: ?&c_ulong, MarshalledTargetInfo: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn I_RpcBindingInqLocalClientPID(Binding: RPC_BINDING_HANDLE, Pid: ?&c_ulong) -> RPC_STATUS;
pub extern fn I_RpcBindingHandleToAsyncHandle(Binding: RPC_BINDING_HANDLE, AsyncHandle: ?&(?&c_void)) -> RPC_STATUS;
pub extern fn I_RpcNsBindingSetEntryNameW(Binding: RPC_BINDING_HANDLE, EntryNameSyntax: c_ulong, EntryName: RPC_WSTR) -> RPC_STATUS;
pub extern fn I_RpcNsBindingSetEntryNameA(Binding: RPC_BINDING_HANDLE, EntryNameSyntax: c_ulong, EntryName: RPC_CSTR) -> RPC_STATUS;
pub extern fn I_RpcServerUseProtseqEp2A(NetworkAddress: RPC_CSTR, Protseq: RPC_CSTR, MaxCalls: c_uint, Endpoint: RPC_CSTR, SecurityDescriptor: ?&c_void, Policy: ?&c_void) -> RPC_STATUS;
pub extern fn I_RpcServerUseProtseqEp2W(NetworkAddress: RPC_WSTR, Protseq: RPC_WSTR, MaxCalls: c_uint, Endpoint: RPC_WSTR, SecurityDescriptor: ?&c_void, Policy: ?&c_void) -> RPC_STATUS;
pub extern fn I_RpcServerUseProtseq2W(NetworkAddress: RPC_WSTR, Protseq: RPC_WSTR, MaxCalls: c_uint, SecurityDescriptor: ?&c_void, Policy: ?&c_void) -> RPC_STATUS;
pub extern fn I_RpcServerUseProtseq2A(NetworkAddress: RPC_CSTR, Protseq: RPC_CSTR, MaxCalls: c_uint, SecurityDescriptor: ?&c_void, Policy: ?&c_void) -> RPC_STATUS;
pub extern fn I_RpcServerStartService(Protseq: RPC_WSTR, Endpoint: RPC_WSTR, IfSpec: RPC_IF_HANDLE) -> RPC_STATUS;
pub extern fn I_RpcBindingInqDynamicEndpointW(Binding: RPC_BINDING_HANDLE, DynamicEndpoint: ?&RPC_WSTR) -> RPC_STATUS;
pub extern fn I_RpcBindingInqDynamicEndpointA(Binding: RPC_BINDING_HANDLE, DynamicEndpoint: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn I_RpcServerCheckClientRestriction(Context: RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn I_RpcBindingInqTransportType(Binding: RPC_BINDING_HANDLE, Type: ?&c_uint) -> RPC_STATUS;
pub const struct__RPC_TRANSFER_SYNTAX = extern struct {
Uuid: UUID,
VersMajor: c_ushort,
VersMinor: c_ushort,
};
pub const RPC_TRANSFER_SYNTAX = struct__RPC_TRANSFER_SYNTAX;
pub extern fn I_RpcIfInqTransferSyntaxes(RpcIfHandle: RPC_IF_HANDLE, TransferSyntaxes: ?&RPC_TRANSFER_SYNTAX, TransferSyntaxSize: c_uint, TransferSyntaxCount: ?&c_uint) -> RPC_STATUS;
pub extern fn I_UuidCreate(Uuid: ?&UUID) -> RPC_STATUS;
pub extern fn I_RpcBindingCopy(SourceBinding: RPC_BINDING_HANDLE, DestinationBinding: ?&RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn I_RpcBindingIsClientLocal(BindingHandle: RPC_BINDING_HANDLE, ClientLocalFlag: ?&c_uint) -> RPC_STATUS;
pub extern fn I_RpcBindingInqConnId(Binding: RPC_BINDING_HANDLE, ConnId: ?&(?&c_void), pfFirstCall: ?&c_int) -> RPC_STATUS;
pub extern fn I_RpcBindingCreateNP(ServerName: RPC_WSTR, ServiceName: RPC_WSTR, NetworkOptions: RPC_WSTR, Binding: ?&RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn I_RpcSsDontSerializeContext();
pub extern fn I_RpcLaunchDatagramReceiveThread(pAddress: ?&c_void) -> RPC_STATUS;
pub extern fn I_RpcServerRegisterForwardFunction(pForwardFunction: ?&RPC_FORWARD_FUNCTION) -> RPC_STATUS;
pub extern fn I_RpcServerInqAddressChangeFn() -> ?&RPC_ADDRESS_CHANGE_FN;
pub extern fn I_RpcServerSetAddressChangeFn(pAddressChangeFn: ?&RPC_ADDRESS_CHANGE_FN) -> RPC_STATUS;
pub extern fn I_RpcServerInqLocalConnAddress(Binding: RPC_BINDING_HANDLE, Buffer: ?&c_void, BufferSize: ?&c_ulong, AddressFormat: ?&c_ulong) -> RPC_STATUS;
pub extern fn I_RpcServerInqRemoteConnAddress(Binding: RPC_BINDING_HANDLE, Buffer: ?&c_void, BufferSize: ?&c_ulong, AddressFormat: ?&c_ulong) -> RPC_STATUS;
pub extern fn I_RpcSessionStrictContextHandle();
pub extern fn I_RpcTurnOnEEInfoPropagation() -> RPC_STATUS;
pub extern fn I_RpcConnectionInqSockBuffSize(RecvBuffSize: ?&c_ulong, SendBuffSize: ?&c_ulong) -> RPC_STATUS;
pub extern fn I_RpcConnectionSetSockBuffSize(RecvBuffSize: c_ulong, SendBuffSize: c_ulong) -> RPC_STATUS;
pub const RPCLT_PDU_FILTER_FUNC = ?extern fn(?&c_void, c_uint, c_int);
pub const RPC_SETFILTER_FUNC = ?extern fn(RPCLT_PDU_FILTER_FUNC);
pub extern fn I_RpcServerStartListening(hWnd: ?&c_void) -> RPC_STATUS;
pub extern fn I_RpcServerStopListening() -> RPC_STATUS;
pub const RPC_BLOCKING_FN = ?extern fn(?&c_void, ?&c_void, ?&c_void) -> RPC_STATUS;
pub extern fn I_RpcBindingSetAsync(Binding: RPC_BINDING_HANDLE, BlockingFn: RPC_BLOCKING_FN, ServerTid: c_ulong) -> RPC_STATUS;
pub extern fn I_RpcSetThreadParams(fClientFree: c_int, Context: ?&c_void, hWndClient: ?&c_void) -> RPC_STATUS;
pub extern fn I_RpcWindowProc(hWnd: ?&c_void, Message: c_uint, wParam: c_uint, lParam: c_ulong) -> c_uint;
pub extern fn I_RpcServerUnregisterEndpointA(Protseq: RPC_CSTR, Endpoint: RPC_CSTR) -> RPC_STATUS;
pub extern fn I_RpcServerUnregisterEndpointW(Protseq: RPC_WSTR, Endpoint: RPC_WSTR) -> RPC_STATUS;
pub extern fn I_RpcServerInqTransportType(Type: ?&c_uint) -> RPC_STATUS;
pub extern fn I_RpcMapWin32Status(Status: RPC_STATUS) -> c_long;
pub const struct__RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR = extern struct {
BufferSize: c_ulong,
Buffer: ?&u8,
};
pub const RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR = struct__RPC_C_OPT_COOKIE_AUTH_DESCRIPTOR;
pub const struct__RDR_CALLOUT_STATE = extern struct {
LastError: RPC_STATUS,
LastEEInfo: ?&c_void,
LastCalledStage: RPC_HTTP_REDIRECTOR_STAGE,
ServerName: ?&c_ushort,
ServerPort: ?&c_ushort,
RemoteUser: ?&c_ushort,
AuthType: ?&c_ushort,
ResourceTypePresent: u8,
SessionIdPresent: u8,
InterfacePresent: u8,
ResourceType: UUID,
SessionId: UUID,
Interface: RPC_SYNTAX_IDENTIFIER,
CertContext: ?&c_void,
};
pub const RDR_CALLOUT_STATE = struct__RDR_CALLOUT_STATE;
pub const I_RpcProxyIsValidMachineFn = ?extern fn(RPC_WSTR, RPC_WSTR, c_ulong) -> RPC_STATUS;
pub const I_RpcProxyGetClientAddressFn = ?extern fn(?&c_void, ?&u8, ?&c_ulong) -> RPC_STATUS;
pub const I_RpcProxyGetConnectionTimeoutFn = ?extern fn(?&c_ulong) -> RPC_STATUS;
pub const I_RpcPerformCalloutFn = ?extern fn(?&c_void, ?&RDR_CALLOUT_STATE, RPC_HTTP_REDIRECTOR_STAGE) -> RPC_STATUS;
pub const I_RpcFreeCalloutStateFn = ?extern fn(?&RDR_CALLOUT_STATE);
pub const I_RpcProxyGetClientSessionAndResourceUUID = ?extern fn(?&c_void, ?&c_int, ?&UUID, ?&c_int, ?&UUID) -> RPC_STATUS;
pub const I_RpcProxyFilterIfFn = ?extern fn(?&c_void, ?&UUID, c_ushort, ?&c_int) -> RPC_STATUS;
pub const RpcCurrentUniqueUser: c_int = 1;
pub const RpcBackEndConnectionAttempts: c_int = 2;
pub const RpcBackEndConnectionFailed: c_int = 3;
pub const RpcRequestsPerSecond: c_int = 4;
pub const RpcIncomingConnections: c_int = 5;
pub const RpcIncomingBandwidth: c_int = 6;
pub const RpcOutgoingBandwidth: c_int = 7;
pub const RpcAttemptedLbsDecisions: c_int = 8;
pub const RpcFailedLbsDecisions: c_int = 9;
pub const RpcAttemptedLbsMessages: c_int = 10;
pub const RpcFailedLbsMessages: c_int = 11;
pub const RpcLastCounter: c_int = 12;
pub const enum_RpcProxyPerfCounters = c_int;
pub const RpcCurrentUniqueUser: c_int = 1;
pub const RpcBackEndConnectionAttempts: c_int = 2;
pub const RpcBackEndConnectionFailed: c_int = 3;
pub const RpcRequestsPerSecond: c_int = 4;
pub const RpcIncomingConnections: c_int = 5;
pub const RpcIncomingBandwidth: c_int = 6;
pub const RpcOutgoingBandwidth: c_int = 7;
pub const RpcAttemptedLbsDecisions: c_int = 8;
pub const RpcFailedLbsDecisions: c_int = 9;
pub const RpcAttemptedLbsMessages: c_int = 10;
pub const RpcFailedLbsMessages: c_int = 11;
pub const RpcLastCounter: c_int = 12;
pub const enum_RpcProxyPerfCounters = c_int;
pub const RpcPerfCounters = enum_RpcProxyPerfCounters;
pub const I_RpcProxyUpdatePerfCounterFn = ?extern fn(RpcPerfCounters, c_int, c_ulong);
pub const I_RpcProxyUpdatePerfCounterBackendServerFn = ?extern fn(?&c_ushort, c_int);
pub const struct_tagI_RpcProxyCallbackInterface = extern struct {
IsValidMachineFn: I_RpcProxyIsValidMachineFn,
GetClientAddressFn: I_RpcProxyGetClientAddressFn,
GetConnectionTimeoutFn: I_RpcProxyGetConnectionTimeoutFn,
PerformCalloutFn: I_RpcPerformCalloutFn,
FreeCalloutStateFn: I_RpcFreeCalloutStateFn,
GetClientSessionAndResourceUUIDFn: I_RpcProxyGetClientSessionAndResourceUUID,
ProxyFilterIfFn: I_RpcProxyFilterIfFn,
RpcProxyUpdatePerfCounterFn: I_RpcProxyUpdatePerfCounterFn,
RpcProxyUpdatePerfCounterBackendServerFn: I_RpcProxyUpdatePerfCounterBackendServerFn,
};
pub const I_RpcProxyCallbackInterface = struct_tagI_RpcProxyCallbackInterface;
pub extern fn I_RpcProxyNewConnection(ConnectionType: c_ulong, ServerAddress: ?&c_ushort, ServerPort: ?&c_ushort, MinConnTimeout: ?&c_ushort, ConnectionParameter: ?&c_void, CallOutState: ?&RDR_CALLOUT_STATE, ProxyCallbackInterface: ?&I_RpcProxyCallbackInterface) -> RPC_STATUS;
pub extern fn I_RpcReplyToClientWithStatus(ConnectionParameter: ?&c_void, RpcStatus: RPC_STATUS) -> RPC_STATUS;
pub extern fn I_RpcRecordCalloutFailure(RpcStatus: RPC_STATUS, CallOutState: ?&RDR_CALLOUT_STATE, DllName: ?&c_ushort);
pub extern fn I_RpcGetDefaultSD(ppSecurityDescriptor: ?&(?&c_void)) -> RPC_STATUS;
pub extern fn I_RpcOpenClientProcess(Binding: RPC_BINDING_HANDLE, DesiredAccess: c_ulong, ClientProcess: ?&(?&c_void)) -> RPC_STATUS;
pub extern fn I_RpcBindingIsServerLocal(Binding: RPC_BINDING_HANDLE, ServerLocalFlag: ?&c_uint) -> RPC_STATUS;
pub extern fn I_RpcBindingSetPrivateOption(hBinding: RPC_BINDING_HANDLE, option: c_ulong, optionValue: ULONG_PTR) -> RPC_STATUS;
pub extern fn I_RpcServerSubscribeForDisconnectNotification(Binding: RPC_BINDING_HANDLE, hEvent: ?&c_void) -> RPC_STATUS;
pub extern fn I_RpcServerGetAssociationID(Binding: RPC_BINDING_HANDLE, AssociationID: ?&c_ulong) -> RPC_STATUS;
pub const RPC_NS_HANDLE = ?&c_void;
pub extern fn RpcNsBindingExportA(EntryNameSyntax: c_ulong, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, BindingVec: ?&RPC_BINDING_VECTOR, ObjectUuidVec: ?&UUID_VECTOR) -> RPC_STATUS;
pub extern fn RpcNsBindingUnexportA(EntryNameSyntax: c_ulong, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjectUuidVec: ?&UUID_VECTOR) -> RPC_STATUS;
pub extern fn RpcNsBindingExportW(EntryNameSyntax: c_ulong, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, BindingVec: ?&RPC_BINDING_VECTOR, ObjectUuidVec: ?&UUID_VECTOR) -> RPC_STATUS;
pub extern fn RpcNsBindingUnexportW(EntryNameSyntax: c_ulong, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjectUuidVec: ?&UUID_VECTOR) -> RPC_STATUS;
pub extern fn RpcNsBindingExportPnPA(EntryNameSyntax: c_ulong, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjectVector: ?&UUID_VECTOR) -> RPC_STATUS;
pub extern fn RpcNsBindingUnexportPnPA(EntryNameSyntax: c_ulong, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjectVector: ?&UUID_VECTOR) -> RPC_STATUS;
pub extern fn RpcNsBindingExportPnPW(EntryNameSyntax: c_ulong, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjectVector: ?&UUID_VECTOR) -> RPC_STATUS;
pub extern fn RpcNsBindingUnexportPnPW(EntryNameSyntax: c_ulong, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjectVector: ?&UUID_VECTOR) -> RPC_STATUS;
pub extern fn RpcNsBindingLookupBeginA(EntryNameSyntax: c_ulong, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjUuid: ?&UUID, BindingMaxCount: c_ulong, LookupContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsBindingLookupBeginW(EntryNameSyntax: c_ulong, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjUuid: ?&UUID, BindingMaxCount: c_ulong, LookupContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsBindingLookupNext(LookupContext: RPC_NS_HANDLE, BindingVec: ?&(?&RPC_BINDING_VECTOR)) -> RPC_STATUS;
pub extern fn RpcNsBindingLookupDone(LookupContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsGroupDeleteA(GroupNameSyntax: c_ulong, GroupName: RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcNsGroupMbrAddA(GroupNameSyntax: c_ulong, GroupName: RPC_CSTR, MemberNameSyntax: c_ulong, MemberName: RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcNsGroupMbrRemoveA(GroupNameSyntax: c_ulong, GroupName: RPC_CSTR, MemberNameSyntax: c_ulong, MemberName: RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcNsGroupMbrInqBeginA(GroupNameSyntax: c_ulong, GroupName: RPC_CSTR, MemberNameSyntax: c_ulong, InquiryContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsGroupMbrInqNextA(InquiryContext: RPC_NS_HANDLE, MemberName: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcNsGroupDeleteW(GroupNameSyntax: c_ulong, GroupName: RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcNsGroupMbrAddW(GroupNameSyntax: c_ulong, GroupName: RPC_WSTR, MemberNameSyntax: c_ulong, MemberName: RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcNsGroupMbrRemoveW(GroupNameSyntax: c_ulong, GroupName: RPC_WSTR, MemberNameSyntax: c_ulong, MemberName: RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcNsGroupMbrInqBeginW(GroupNameSyntax: c_ulong, GroupName: RPC_WSTR, MemberNameSyntax: c_ulong, InquiryContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsGroupMbrInqNextW(InquiryContext: RPC_NS_HANDLE, MemberName: ?&RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcNsGroupMbrInqDone(InquiryContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsProfileDeleteA(ProfileNameSyntax: c_ulong, ProfileName: RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcNsProfileEltAddA(ProfileNameSyntax: c_ulong, ProfileName: RPC_CSTR, IfId: ?&RPC_IF_ID, MemberNameSyntax: c_ulong, MemberName: RPC_CSTR, Priority: c_ulong, Annotation: RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcNsProfileEltRemoveA(ProfileNameSyntax: c_ulong, ProfileName: RPC_CSTR, IfId: ?&RPC_IF_ID, MemberNameSyntax: c_ulong, MemberName: RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcNsProfileEltInqBeginA(ProfileNameSyntax: c_ulong, ProfileName: RPC_CSTR, InquiryType: c_ulong, IfId: ?&RPC_IF_ID, VersOption: c_ulong, MemberNameSyntax: c_ulong, MemberName: RPC_CSTR, InquiryContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsProfileEltInqNextA(InquiryContext: RPC_NS_HANDLE, IfId: ?&RPC_IF_ID, MemberName: ?&RPC_CSTR, Priority: ?&c_ulong, Annotation: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcNsProfileDeleteW(ProfileNameSyntax: c_ulong, ProfileName: RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcNsProfileEltAddW(ProfileNameSyntax: c_ulong, ProfileName: RPC_WSTR, IfId: ?&RPC_IF_ID, MemberNameSyntax: c_ulong, MemberName: RPC_WSTR, Priority: c_ulong, Annotation: RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcNsProfileEltRemoveW(ProfileNameSyntax: c_ulong, ProfileName: RPC_WSTR, IfId: ?&RPC_IF_ID, MemberNameSyntax: c_ulong, MemberName: RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcNsProfileEltInqBeginW(ProfileNameSyntax: c_ulong, ProfileName: RPC_WSTR, InquiryType: c_ulong, IfId: ?&RPC_IF_ID, VersOption: c_ulong, MemberNameSyntax: c_ulong, MemberName: RPC_WSTR, InquiryContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsProfileEltInqNextW(InquiryContext: RPC_NS_HANDLE, IfId: ?&RPC_IF_ID, MemberName: ?&RPC_WSTR, Priority: ?&c_ulong, Annotation: ?&RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcNsProfileEltInqDone(InquiryContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsEntryObjectInqBeginA(EntryNameSyntax: c_ulong, EntryName: RPC_CSTR, InquiryContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsEntryObjectInqBeginW(EntryNameSyntax: c_ulong, EntryName: RPC_WSTR, InquiryContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsEntryObjectInqNext(InquiryContext: RPC_NS_HANDLE, ObjUuid: ?&UUID) -> RPC_STATUS;
pub extern fn RpcNsEntryObjectInqDone(InquiryContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsEntryExpandNameA(EntryNameSyntax: c_ulong, EntryName: RPC_CSTR, ExpandedName: ?&RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcNsMgmtBindingUnexportA(EntryNameSyntax: c_ulong, EntryName: RPC_CSTR, IfId: ?&RPC_IF_ID, VersOption: c_ulong, ObjectUuidVec: ?&UUID_VECTOR) -> RPC_STATUS;
pub extern fn RpcNsMgmtEntryCreateA(EntryNameSyntax: c_ulong, EntryName: RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcNsMgmtEntryDeleteA(EntryNameSyntax: c_ulong, EntryName: RPC_CSTR) -> RPC_STATUS;
pub extern fn RpcNsMgmtEntryInqIfIdsA(EntryNameSyntax: c_ulong, EntryName: RPC_CSTR, IfIdVec: ?&(?&RPC_IF_ID_VECTOR)) -> RPC_STATUS;
pub extern fn RpcNsMgmtHandleSetExpAge(NsHandle: RPC_NS_HANDLE, ExpirationAge: c_ulong) -> RPC_STATUS;
pub extern fn RpcNsMgmtInqExpAge(ExpirationAge: ?&c_ulong) -> RPC_STATUS;
pub extern fn RpcNsMgmtSetExpAge(ExpirationAge: c_ulong) -> RPC_STATUS;
pub extern fn RpcNsEntryExpandNameW(EntryNameSyntax: c_ulong, EntryName: RPC_WSTR, ExpandedName: ?&RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcNsMgmtBindingUnexportW(EntryNameSyntax: c_ulong, EntryName: RPC_WSTR, IfId: ?&RPC_IF_ID, VersOption: c_ulong, ObjectUuidVec: ?&UUID_VECTOR) -> RPC_STATUS;
pub extern fn RpcNsMgmtEntryCreateW(EntryNameSyntax: c_ulong, EntryName: RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcNsMgmtEntryDeleteW(EntryNameSyntax: c_ulong, EntryName: RPC_WSTR) -> RPC_STATUS;
pub extern fn RpcNsMgmtEntryInqIfIdsW(EntryNameSyntax: c_ulong, EntryName: RPC_WSTR, IfIdVec: ?&(?&RPC_IF_ID_VECTOR)) -> RPC_STATUS;
pub extern fn RpcNsBindingImportBeginA(EntryNameSyntax: c_ulong, EntryName: RPC_CSTR, IfSpec: RPC_IF_HANDLE, ObjUuid: ?&UUID, ImportContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsBindingImportBeginW(EntryNameSyntax: c_ulong, EntryName: RPC_WSTR, IfSpec: RPC_IF_HANDLE, ObjUuid: ?&UUID, ImportContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsBindingImportNext(ImportContext: RPC_NS_HANDLE, Binding: ?&RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsBindingImportDone(ImportContext: ?&RPC_NS_HANDLE) -> RPC_STATUS;
pub extern fn RpcNsBindingSelect(BindingVec: ?&RPC_BINDING_VECTOR, Binding: ?&RPC_BINDING_HANDLE) -> RPC_STATUS;
pub const RpcNotificationTypeNone = enum__RPC_NOTIFICATION_TYPES.RpcNotificationTypeNone;
pub const RpcNotificationTypeEvent = enum__RPC_NOTIFICATION_TYPES.RpcNotificationTypeEvent;
pub const RpcNotificationTypeApc = enum__RPC_NOTIFICATION_TYPES.RpcNotificationTypeApc;
pub const RpcNotificationTypeIoc = enum__RPC_NOTIFICATION_TYPES.RpcNotificationTypeIoc;
pub const RpcNotificationTypeHwnd = enum__RPC_NOTIFICATION_TYPES.RpcNotificationTypeHwnd;
pub const RpcNotificationTypeCallback = enum__RPC_NOTIFICATION_TYPES.RpcNotificationTypeCallback;
pub const enum__RPC_NOTIFICATION_TYPES = extern enum {
RpcNotificationTypeNone,
RpcNotificationTypeEvent,
RpcNotificationTypeApc,
RpcNotificationTypeIoc,
RpcNotificationTypeHwnd,
RpcNotificationTypeCallback,
};
pub const RPC_NOTIFICATION_TYPES = enum__RPC_NOTIFICATION_TYPES;
pub const RpcCallComplete = enum__RPC_ASYNC_EVENT.RpcCallComplete;
pub const RpcSendComplete = enum__RPC_ASYNC_EVENT.RpcSendComplete;
pub const RpcReceiveComplete = enum__RPC_ASYNC_EVENT.RpcReceiveComplete;
pub const RpcClientDisconnect = enum__RPC_ASYNC_EVENT.RpcClientDisconnect;
pub const RpcClientCancel = enum__RPC_ASYNC_EVENT.RpcClientCancel;
pub const enum__RPC_ASYNC_EVENT = extern enum {
RpcCallComplete,
RpcSendComplete,
RpcReceiveComplete,
RpcClientDisconnect,
RpcClientCancel,
};
pub const RPC_ASYNC_EVENT = enum__RPC_ASYNC_EVENT;
pub const struct__RPC_ASYNC_STATE = @OpaqueType();
pub const RPCNOTIFICATION_ROUTINE = extern fn(?&struct__RPC_ASYNC_STATE, ?&c_void, RPC_ASYNC_EVENT);
pub const PFN_RPCNOTIFICATION_ROUTINE = ?&RPCNOTIFICATION_ROUTINE;
pub const RPC_ASYNC_STATE = struct__RPC_ASYNC_STATE;
pub const PRPC_ASYNC_STATE = ?&struct__RPC_ASYNC_STATE;
pub extern fn RpcAsyncInitializeHandle(pAsync: PRPC_ASYNC_STATE, Size: c_uint) -> RPC_STATUS;
pub extern fn RpcAsyncRegisterInfo(pAsync: PRPC_ASYNC_STATE) -> RPC_STATUS;
pub extern fn RpcAsyncGetCallStatus(pAsync: PRPC_ASYNC_STATE) -> RPC_STATUS;
pub extern fn RpcAsyncCompleteCall(pAsync: PRPC_ASYNC_STATE, Reply: ?&c_void) -> RPC_STATUS;
pub extern fn RpcAsyncAbortCall(pAsync: PRPC_ASYNC_STATE, ExceptionCode: c_ulong) -> RPC_STATUS;
pub extern fn RpcAsyncCancelCall(pAsync: PRPC_ASYNC_STATE, fAbort: BOOL) -> RPC_STATUS;
pub const eeptAnsiString: c_int = 1;
pub const eeptUnicodeString: c_int = 2;
pub const eeptLongVal: c_int = 3;
pub const eeptShortVal: c_int = 4;
pub const eeptPointerVal: c_int = 5;
pub const eeptNone: c_int = 6;
pub const eeptBinary: c_int = 7;
pub const enum_tagExtendedErrorParamTypes = c_int;
pub const eeptAnsiString: c_int = 1;
pub const eeptUnicodeString: c_int = 2;
pub const eeptLongVal: c_int = 3;
pub const eeptShortVal: c_int = 4;
pub const eeptPointerVal: c_int = 5;
pub const eeptNone: c_int = 6;
pub const eeptBinary: c_int = 7;
pub const enum_tagExtendedErrorParamTypes = c_int;
pub const ExtendedErrorParamTypes = enum_tagExtendedErrorParamTypes;
pub const struct_tagBinaryParam = extern struct {
Buffer: ?&c_void,
Size: c_short,
};
pub const BinaryParam = struct_tagBinaryParam;
pub const struct_tagRPC_EE_INFO_PARAM = @OpaqueType();
pub const RPC_EE_INFO_PARAM = struct_tagRPC_EE_INFO_PARAM;
pub const struct_tagRPC_EXTENDED_ERROR_INFO = @OpaqueType();
pub const RPC_EXTENDED_ERROR_INFO = struct_tagRPC_EXTENDED_ERROR_INFO;
pub const struct_tagRPC_ERROR_ENUM_HANDLE = extern struct {
Signature: ULONG,
CurrentPos: ?&c_void,
Head: ?&c_void,
};
pub const RPC_ERROR_ENUM_HANDLE = struct_tagRPC_ERROR_ENUM_HANDLE;
pub extern fn RpcErrorStartEnumeration(EnumHandle: ?&RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS;
pub extern fn RpcErrorGetNextRecord(EnumHandle: ?&RPC_ERROR_ENUM_HANDLE, CopyStrings: BOOL, ErrorInfo: ?&RPC_EXTENDED_ERROR_INFO) -> RPC_STATUS;
pub extern fn RpcErrorEndEnumeration(EnumHandle: ?&RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS;
pub extern fn RpcErrorResetEnumeration(EnumHandle: ?&RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS;
pub extern fn RpcErrorGetNumberOfRecords(EnumHandle: ?&RPC_ERROR_ENUM_HANDLE, Records: ?&c_int) -> RPC_STATUS;
pub extern fn RpcErrorSaveErrorInfo(EnumHandle: ?&RPC_ERROR_ENUM_HANDLE, ErrorBlob: ?&PVOID, BlobSize: ?&usize) -> RPC_STATUS;
pub extern fn RpcErrorLoadErrorInfo(ErrorBlob: PVOID, BlobSize: usize, EnumHandle: ?&RPC_ERROR_ENUM_HANDLE) -> RPC_STATUS;
pub extern fn RpcErrorAddRecord(ErrorInfo: ?&RPC_EXTENDED_ERROR_INFO) -> RPC_STATUS;
pub extern fn RpcErrorClearInformation();
pub extern fn RpcAsyncCleanupThread(dwTimeout: DWORD) -> RPC_STATUS;
pub extern fn RpcFreeAuthorizationContext(pAuthzClientContext: ?&PVOID) -> RPC_STATUS;
pub extern fn RpcSsContextLockExclusive(ServerBindingHandle: RPC_BINDING_HANDLE, UserContext: PVOID) -> RPC_STATUS;
pub extern fn RpcSsContextLockShared(ServerBindingHandle: RPC_BINDING_HANDLE, UserContext: PVOID) -> RPC_STATUS;
pub const rlafInvalid: c_int = 0;
pub const rlafIPv4: c_int = 1;
pub const rlafIPv6: c_int = 2;
pub const enum_tagRpcLocalAddressFormat = c_int;
pub const rlafInvalid: c_int = 0;
pub const rlafIPv4: c_int = 1;
pub const rlafIPv6: c_int = 2;
pub const enum_tagRpcLocalAddressFormat = c_int;
pub const RpcLocalAddressFormat = enum_tagRpcLocalAddressFormat;
pub const struct__RPC_CALL_LOCAL_ADDRESS_V1 = extern struct {
Version: c_uint,
Buffer: ?&c_void,
BufferSize: c_ulong,
AddressFormat: RpcLocalAddressFormat,
};
pub const RPC_CALL_LOCAL_ADDRESS_V1 = struct__RPC_CALL_LOCAL_ADDRESS_V1;
pub const PRPC_CALL_LOCAL_ADDRESS_V1 = ?&struct__RPC_CALL_LOCAL_ADDRESS_V1;
pub const struct_tagRPC_CALL_ATTRIBUTES_V1_W = extern struct {
Version: c_uint,
Flags: c_ulong,
ServerPrincipalNameBufferLength: c_ulong,
ServerPrincipalName: ?&c_ushort,
ClientPrincipalNameBufferLength: c_ulong,
ClientPrincipalName: ?&c_ushort,
AuthenticationLevel: c_ulong,
AuthenticationService: c_ulong,
NullSession: BOOL,
};
pub const RPC_CALL_ATTRIBUTES_V1_W = struct_tagRPC_CALL_ATTRIBUTES_V1_W;
pub const struct_tagRPC_CALL_ATTRIBUTES_V1_A = extern struct {
Version: c_uint,
Flags: c_ulong,
ServerPrincipalNameBufferLength: c_ulong,
ServerPrincipalName: ?&u8,
ClientPrincipalNameBufferLength: c_ulong,
ClientPrincipalName: ?&u8,
AuthenticationLevel: c_ulong,
AuthenticationService: c_ulong,
NullSession: BOOL,
};
pub const RPC_CALL_ATTRIBUTES_V1_A = struct_tagRPC_CALL_ATTRIBUTES_V1_A;
pub const rctInvalid: c_int = 0;
pub const rctNormal: c_int = 1;
pub const rctTraining: c_int = 2;
pub const rctGuaranteed: c_int = 3;
pub const enum_tagRpcCallType = c_int;
pub const rctInvalid: c_int = 0;
pub const rctNormal: c_int = 1;
pub const rctTraining: c_int = 2;
pub const rctGuaranteed: c_int = 3;
pub const enum_tagRpcCallType = c_int;
pub const RpcCallType = enum_tagRpcCallType;
pub const rcclInvalid: c_int = 0;
pub const rcclLocal: c_int = 1;
pub const rcclRemote: c_int = 2;
pub const rcclClientUnknownLocality: c_int = 3;
pub const enum_tagRpcCallClientLocality = c_int;
pub const rcclInvalid: c_int = 0;
pub const rcclLocal: c_int = 1;
pub const rcclRemote: c_int = 2;
pub const rcclClientUnknownLocality: c_int = 3;
pub const enum_tagRpcCallClientLocality = c_int;
pub const RpcCallClientLocality = enum_tagRpcCallClientLocality;
pub const struct_tagRPC_CALL_ATTRIBUTES_V2_W = extern struct {
Version: c_uint,
Flags: c_ulong,
ServerPrincipalNameBufferLength: c_ulong,
ServerPrincipalName: ?&c_ushort,
ClientPrincipalNameBufferLength: c_ulong,
ClientPrincipalName: ?&c_ushort,
AuthenticationLevel: c_ulong,
AuthenticationService: c_ulong,
NullSession: BOOL,
KernelModeCaller: BOOL,
ProtocolSequence: c_ulong,
IsClientLocal: RpcCallClientLocality,
ClientPID: HANDLE,
CallStatus: c_ulong,
CallType: RpcCallType,
CallLocalAddress: ?&RPC_CALL_LOCAL_ADDRESS_V1,
OpNum: c_ushort,
InterfaceUuid: UUID,
};
pub const RPC_CALL_ATTRIBUTES_V2_W = struct_tagRPC_CALL_ATTRIBUTES_V2_W;
pub const struct_tagRPC_CALL_ATTRIBUTES_V2_A = extern struct {
Version: c_uint,
Flags: c_ulong,
ServerPrincipalNameBufferLength: c_ulong,
ServerPrincipalName: ?&u8,
ClientPrincipalNameBufferLength: c_ulong,
ClientPrincipalName: ?&u8,
AuthenticationLevel: c_ulong,
AuthenticationService: c_ulong,
NullSession: BOOL,
KernelModeCaller: BOOL,
ProtocolSequence: c_ulong,
IsClientLocal: c_ulong,
ClientPID: HANDLE,
CallStatus: c_ulong,
CallType: RpcCallType,
CallLocalAddress: ?&RPC_CALL_LOCAL_ADDRESS_V1,
OpNum: c_ushort,
InterfaceUuid: UUID,
};
pub const RPC_CALL_ATTRIBUTES_V2_A = struct_tagRPC_CALL_ATTRIBUTES_V2_A;
pub const struct_tagRPC_CALL_ATTRIBUTES_V3_W = extern struct {
Version: c_uint,
Flags: c_ulong,
ServerPrincipalNameBufferLength: c_ulong,
ServerPrincipalName: ?&c_ushort,
ClientPrincipalNameBufferLength: c_ulong,
ClientPrincipalName: ?&c_ushort,
AuthenticationLevel: c_ulong,
AuthenticationService: c_ulong,
NullSession: BOOL,
KernelModeCaller: BOOL,
ProtocolSequence: c_ulong,
IsClientLocal: RpcCallClientLocality,
ClientPID: HANDLE,
CallStatus: c_ulong,
CallType: RpcCallType,
CallLocalAddress: ?&RPC_CALL_LOCAL_ADDRESS_V1,
OpNum: c_ushort,
InterfaceUuid: UUID,
ClientIdentifierBufferLength: c_ulong,
ClientIdentifier: ?&u8,
};
pub const RPC_CALL_ATTRIBUTES_V3_W = struct_tagRPC_CALL_ATTRIBUTES_V3_W;
pub const struct_tagRPC_CALL_ATTRIBUTES_V3_A = extern struct {
Version: c_uint,
Flags: c_ulong,
ServerPrincipalNameBufferLength: c_ulong,
ServerPrincipalName: ?&u8,
ClientPrincipalNameBufferLength: c_ulong,
ClientPrincipalName: ?&u8,
AuthenticationLevel: c_ulong,
AuthenticationService: c_ulong,
NullSession: BOOL,
KernelModeCaller: BOOL,
ProtocolSequence: c_ulong,
IsClientLocal: c_ulong,
ClientPID: HANDLE,
CallStatus: c_ulong,
CallType: RpcCallType,
CallLocalAddress: ?&RPC_CALL_LOCAL_ADDRESS_V1,
OpNum: c_ushort,
InterfaceUuid: UUID,
ClientIdentifierBufferLength: c_ulong,
ClientIdentifier: ?&u8,
};
pub const RPC_CALL_ATTRIBUTES_V3_A = struct_tagRPC_CALL_ATTRIBUTES_V3_A;
pub extern fn RpcServerInqCallAttributesW(ClientBinding: RPC_BINDING_HANDLE, RpcCallAttributes: ?&c_void) -> RPC_STATUS;
pub extern fn RpcServerInqCallAttributesA(ClientBinding: RPC_BINDING_HANDLE, RpcCallAttributes: ?&c_void) -> RPC_STATUS;
pub const RPC_CALL_ATTRIBUTES = RPC_CALL_ATTRIBUTES_V3_A;
pub const RpcNotificationCallNone: c_int = 0;
pub const RpcNotificationClientDisconnect: c_int = 1;
pub const RpcNotificationCallCancel: c_int = 2;
pub const enum__RPC_NOTIFICATIONS = c_int;
pub const RpcNotificationCallNone: c_int = 0;
pub const RpcNotificationClientDisconnect: c_int = 1;
pub const RpcNotificationCallCancel: c_int = 2;
pub const enum__RPC_NOTIFICATIONS = c_int;
pub const RPC_NOTIFICATIONS = enum__RPC_NOTIFICATIONS;
pub extern fn RpcServerUnsubscribeForNotification(Binding: RPC_BINDING_HANDLE, Notification: RPC_NOTIFICATIONS, NotificationsQueued: ?&c_ulong) -> RPC_STATUS;
pub extern fn RpcBindingBind(pAsync: PRPC_ASYNC_STATE, Binding: RPC_BINDING_HANDLE, IfSpec: RPC_IF_HANDLE) -> RPC_STATUS;
pub extern fn RpcBindingUnbind(Binding: RPC_BINDING_HANDLE) -> RPC_STATUS;
pub extern fn I_RpcAsyncSetHandle(Message: PRPC_MESSAGE, pAsync: PRPC_ASYNC_STATE) -> RPC_STATUS;
pub extern fn I_RpcAsyncAbortCall(pAsync: PRPC_ASYNC_STATE, ExceptionCode: c_ulong) -> RPC_STATUS;
pub extern fn I_RpcExceptionFilter(ExceptionCode: c_ulong) -> c_int;
pub extern fn I_RpcBindingInqClientTokenAttributes(Binding: RPC_BINDING_HANDLE, TokenId: ?&LUID, AuthenticationId: ?&LUID, ModifiedId: ?&LUID) -> RPC_STATUS;
pub const struct_HDROP__ = extern struct {
unused: c_int,
};
pub const HDROP = ?&struct_HDROP__;
pub extern fn DragQueryFileA(hDrop: HDROP, iFile: UINT, lpszFile: LPSTR, cch: UINT) -> UINT;
pub extern fn DragQueryFileW(hDrop: HDROP, iFile: UINT, lpszFile: LPWSTR, cch: UINT) -> UINT;
pub extern fn DragQueryPoint(hDrop: HDROP, ppt: ?&POINT) -> BOOL;
pub extern fn DragFinish(hDrop: HDROP);
pub extern fn DragAcceptFiles(hWnd: HWND, fAccept: BOOL);
pub extern fn ShellExecuteA(hwnd: HWND, lpOperation: LPCSTR, lpFile: LPCSTR, lpParameters: LPCSTR, lpDirectory: LPCSTR, nShowCmd: INT) -> HINSTANCE;
pub extern fn ShellExecuteW(hwnd: HWND, lpOperation: LPCWSTR, lpFile: LPCWSTR, lpParameters: LPCWSTR, lpDirectory: LPCWSTR, nShowCmd: INT) -> HINSTANCE;
pub extern fn FindExecutableA(lpFile: LPCSTR, lpDirectory: LPCSTR, lpResult: LPSTR) -> HINSTANCE;
pub extern fn FindExecutableW(lpFile: LPCWSTR, lpDirectory: LPCWSTR, lpResult: LPWSTR) -> HINSTANCE;
pub extern fn CommandLineToArgvW(lpCmdLine: LPCWSTR, pNumArgs: ?&c_int) -> ?&LPWSTR;
pub extern fn ShellAboutA(hWnd: HWND, szApp: LPCSTR, szOtherStuff: LPCSTR, hIcon: HICON) -> INT;
pub extern fn ShellAboutW(hWnd: HWND, szApp: LPCWSTR, szOtherStuff: LPCWSTR, hIcon: HICON) -> INT;
pub extern fn DuplicateIcon(hInst: HINSTANCE, hIcon: HICON) -> HICON;
pub extern fn ExtractAssociatedIconA(hInst: HINSTANCE, pszIconPath: LPSTR, piIcon: ?&WORD) -> HICON;
pub extern fn ExtractAssociatedIconW(hInst: HINSTANCE, pszIconPath: LPWSTR, piIcon: ?&WORD) -> HICON;
pub extern fn ExtractAssociatedIconExA(hInst: HINSTANCE, pszIconPath: LPSTR, piIconIndex: ?&WORD, piIconId: ?&WORD) -> HICON;
pub extern fn ExtractAssociatedIconExW(hInst: HINSTANCE, pszIconPath: LPWSTR, piIconIndex: ?&WORD, piIconId: ?&WORD) -> HICON;
pub extern fn ExtractIconA(hInst: HINSTANCE, pszExeFileName: LPCSTR, nIconIndex: UINT) -> HICON;
pub extern fn ExtractIconW(hInst: HINSTANCE, pszExeFileName: LPCWSTR, nIconIndex: UINT) -> HICON;
pub const struct__DRAGINFOA = extern struct {
uSize: UINT,
pt: POINT,
fNC: BOOL,
lpFileList: PZZSTR,
grfKeyState: DWORD,
};
pub const DRAGINFOA = struct__DRAGINFOA;
pub const LPDRAGINFOA = ?&struct__DRAGINFOA;
pub const struct__DRAGINFOW = extern struct {
uSize: UINT,
pt: POINT,
fNC: BOOL,
lpFileList: PZZWSTR,
grfKeyState: DWORD,
};
pub const DRAGINFOW = struct__DRAGINFOW;
pub const LPDRAGINFOW = ?&struct__DRAGINFOW;
pub const DRAGINFO = DRAGINFOA;
pub const LPDRAGINFO = LPDRAGINFOA;
pub const struct__AppBarData = extern struct {
cbSize: DWORD,
hWnd: HWND,
uCallbackMessage: UINT,
uEdge: UINT,
rc: RECT,
lParam: LPARAM,
};
pub const APPBARDATA = struct__AppBarData;
pub const PAPPBARDATA = ?&struct__AppBarData;
pub extern fn SHAppBarMessage(dwMessage: DWORD, pData: PAPPBARDATA) -> UINT_PTR;
pub extern fn DoEnvironmentSubstA(pszSrc: LPSTR, cchSrc: UINT) -> DWORD;
pub extern fn DoEnvironmentSubstW(pszSrc: LPWSTR, cchSrc: UINT) -> DWORD;
pub extern fn ExtractIconExA(lpszFile: LPCSTR, nIconIndex: c_int, phiconLarge: ?&HICON, phiconSmall: ?&HICON, nIcons: UINT) -> UINT;
pub extern fn ExtractIconExW(lpszFile: LPCWSTR, nIconIndex: c_int, phiconLarge: ?&HICON, phiconSmall: ?&HICON, nIcons: UINT) -> UINT;
pub const FILEOP_FLAGS = WORD;
pub const PRINTEROP_FLAGS = WORD;
pub const struct__SHFILEOPSTRUCTA = extern struct {
hwnd: HWND,
wFunc: UINT,
pFrom: PCZZSTR,
pTo: PCZZSTR,
fFlags: FILEOP_FLAGS,
fAnyOperationsAborted: BOOL,
hNameMappings: LPVOID,
lpszProgressTitle: PCSTR,
};
pub const SHFILEOPSTRUCTA = struct__SHFILEOPSTRUCTA;
pub const LPSHFILEOPSTRUCTA = ?&struct__SHFILEOPSTRUCTA;
pub const struct__SHFILEOPSTRUCTW = extern struct {
hwnd: HWND,
wFunc: UINT,
pFrom: PCZZWSTR,
pTo: PCZZWSTR,
fFlags: FILEOP_FLAGS,
fAnyOperationsAborted: BOOL,
hNameMappings: LPVOID,
lpszProgressTitle: PCWSTR,
};
pub const SHFILEOPSTRUCTW = struct__SHFILEOPSTRUCTW;
pub const LPSHFILEOPSTRUCTW = ?&struct__SHFILEOPSTRUCTW;
pub const SHFILEOPSTRUCT = SHFILEOPSTRUCTA;
pub const LPSHFILEOPSTRUCT = LPSHFILEOPSTRUCTA;
pub extern fn SHFileOperationA(lpFileOp: LPSHFILEOPSTRUCTA) -> c_int;
pub extern fn SHFileOperationW(lpFileOp: LPSHFILEOPSTRUCTW) -> c_int;
pub extern fn SHFreeNameMappings(hNameMappings: HANDLE);
pub const struct__SHNAMEMAPPINGA = extern struct {
pszOldPath: LPSTR,
pszNewPath: LPSTR,
cchOldPath: c_int,
cchNewPath: c_int,
};
pub const SHNAMEMAPPINGA = struct__SHNAMEMAPPINGA;
pub const LPSHNAMEMAPPINGA = ?&struct__SHNAMEMAPPINGA;
pub const struct__SHNAMEMAPPINGW = extern struct {
pszOldPath: LPWSTR,
pszNewPath: LPWSTR,
cchOldPath: c_int,
cchNewPath: c_int,
};
pub const SHNAMEMAPPINGW = struct__SHNAMEMAPPINGW;
pub const LPSHNAMEMAPPINGW = ?&struct__SHNAMEMAPPINGW;
pub const SHNAMEMAPPING = SHNAMEMAPPINGA;
pub const LPSHNAMEMAPPING = LPSHNAMEMAPPINGA;
pub const struct__SHELLEXECUTEINFOA = @OpaqueType();
pub const SHELLEXECUTEINFOA = struct__SHELLEXECUTEINFOA;
pub const LPSHELLEXECUTEINFOA = ?&struct__SHELLEXECUTEINFOA;
pub const struct__SHELLEXECUTEINFOW = @OpaqueType();
pub const SHELLEXECUTEINFOW = struct__SHELLEXECUTEINFOW;
pub const LPSHELLEXECUTEINFOW = ?&struct__SHELLEXECUTEINFOW;
pub const SHELLEXECUTEINFO = SHELLEXECUTEINFOA;
pub const LPSHELLEXECUTEINFO = LPSHELLEXECUTEINFOA;
pub extern fn ShellExecuteExA(pExecInfo: ?&SHELLEXECUTEINFOA) -> BOOL;
pub extern fn ShellExecuteExW(pExecInfo: ?&SHELLEXECUTEINFOW) -> BOOL;
pub const struct__SHCREATEPROCESSINFOW = extern struct {
cbSize: DWORD,
fMask: ULONG,
hwnd: HWND,
pszFile: LPCWSTR,
pszParameters: LPCWSTR,
pszCurrentDirectory: LPCWSTR,
hUserToken: HANDLE,
lpProcessAttributes: LPSECURITY_ATTRIBUTES,
lpThreadAttributes: LPSECURITY_ATTRIBUTES,
bInheritHandles: BOOL,
dwCreationFlags: DWORD,
lpStartupInfo: LPSTARTUPINFOW,
lpProcessInformation: LPPROCESS_INFORMATION,
};
pub const SHCREATEPROCESSINFOW = struct__SHCREATEPROCESSINFOW;
pub const PSHCREATEPROCESSINFOW = ?&struct__SHCREATEPROCESSINFOW;
pub extern fn SHCreateProcessAsUserW(pscpi: PSHCREATEPROCESSINFOW) -> BOOL;
pub extern fn SHEvaluateSystemCommandTemplate(pszCmdTemplate: PCWSTR, ppszApplication: ?&PWSTR, ppszCommandLine: ?&PWSTR, ppszParameters: ?&PWSTR) -> HRESULT;
pub const ASSOCCLASS_SHELL_KEY: c_int = 0;
pub const ASSOCCLASS_PROGID_KEY: c_int = 1;
pub const ASSOCCLASS_PROGID_STR: c_int = 2;
pub const ASSOCCLASS_CLSID_KEY: c_int = 3;
pub const ASSOCCLASS_CLSID_STR: c_int = 4;
pub const ASSOCCLASS_APP_KEY: c_int = 5;
pub const ASSOCCLASS_APP_STR: c_int = 6;
pub const ASSOCCLASS_SYSTEM_STR: c_int = 7;
pub const ASSOCCLASS_FOLDER: c_int = 8;
pub const ASSOCCLASS_STAR: c_int = 9;
pub const ASSOCCLASS_FIXED_PROGID_STR: c_int = 10;
pub const ASSOCCLASS_PROTOCOL_STR: c_int = 11;
pub const enum_ASSOCCLASS = c_int;
pub const ASSOCCLASS_SHELL_KEY: c_int = 0;
pub const ASSOCCLASS_PROGID_KEY: c_int = 1;
pub const ASSOCCLASS_PROGID_STR: c_int = 2;
pub const ASSOCCLASS_CLSID_KEY: c_int = 3;
pub const ASSOCCLASS_CLSID_STR: c_int = 4;
pub const ASSOCCLASS_APP_KEY: c_int = 5;
pub const ASSOCCLASS_APP_STR: c_int = 6;
pub const ASSOCCLASS_SYSTEM_STR: c_int = 7;
pub const ASSOCCLASS_FOLDER: c_int = 8;
pub const ASSOCCLASS_STAR: c_int = 9;
pub const ASSOCCLASS_FIXED_PROGID_STR: c_int = 10;
pub const ASSOCCLASS_PROTOCOL_STR: c_int = 11;
pub const enum_ASSOCCLASS = c_int;
pub const ASSOCCLASS = enum_ASSOCCLASS;
pub const struct_ASSOCIATIONELEMENT = extern struct {
ac: ASSOCCLASS,
hkClass: HKEY,
pszClass: PCWSTR,
};
pub const ASSOCIATIONELEMENT = struct_ASSOCIATIONELEMENT;
pub extern fn AssocCreateForClasses(rgClasses: ?&const ASSOCIATIONELEMENT, cClasses: ULONG, riid: ?&const IID, ppv: ?&(?&c_void)) -> HRESULT;
pub const struct__SHQUERYRBINFO = extern struct {
cbSize: DWORD,
i64Size: c_longlong,
i64NumItems: c_longlong,
};
pub const SHQUERYRBINFO = struct__SHQUERYRBINFO;
pub const LPSHQUERYRBINFO = ?&struct__SHQUERYRBINFO;
pub extern fn SHQueryRecycleBinA(pszRootPath: LPCSTR, pSHQueryRBInfo: LPSHQUERYRBINFO) -> HRESULT;
pub extern fn SHQueryRecycleBinW(pszRootPath: LPCWSTR, pSHQueryRBInfo: LPSHQUERYRBINFO) -> HRESULT;
pub extern fn SHEmptyRecycleBinA(hwnd: HWND, pszRootPath: LPCSTR, dwFlags: DWORD) -> HRESULT;
pub extern fn SHEmptyRecycleBinW(hwnd: HWND, pszRootPath: LPCWSTR, dwFlags: DWORD) -> HRESULT;
pub const QUNS_NOT_PRESENT: c_int = 1;
pub const QUNS_BUSY: c_int = 2;
pub const QUNS_RUNNING_D3D_FULL_SCREEN: c_int = 3;
pub const QUNS_PRESENTATION_MODE: c_int = 4;
pub const QUNS_ACCEPTS_NOTIFICATIONS: c_int = 5;
pub const QUNS_QUIET_TIME: c_int = 6;
pub const QUNS_APP: c_int = 7;
pub const QUERY_USER_NOTIFICATION_STATE = c_int;
pub extern fn SHQueryUserNotificationState(pquns: ?&QUERY_USER_NOTIFICATION_STATE) -> HRESULT;
pub extern fn SHGetPropertyStoreForWindow(hwnd: HWND, riid: ?&const IID, ppv: ?&(?&c_void)) -> HRESULT;
pub const struct__NOTIFYICONDATAA = @OpaqueType();
pub const NOTIFYICONDATAA = struct__NOTIFYICONDATAA;
pub const PNOTIFYICONDATAA = ?&struct__NOTIFYICONDATAA;
pub const struct__NOTIFYICONDATAW = @OpaqueType();
pub const NOTIFYICONDATAW = struct__NOTIFYICONDATAW;
pub const PNOTIFYICONDATAW = ?&struct__NOTIFYICONDATAW;
pub const NOTIFYICONDATA = NOTIFYICONDATAA;
pub const PNOTIFYICONDATA = PNOTIFYICONDATAA;
pub const struct__NOTIFYICONIDENTIFIER = extern struct {
cbSize: DWORD,
hWnd: HWND,
uID: UINT,
guidItem: GUID,
};
pub const NOTIFYICONIDENTIFIER = struct__NOTIFYICONIDENTIFIER;
pub const PNOTIFYICONIDENTIFIER = ?&struct__NOTIFYICONIDENTIFIER;
pub extern fn Shell_NotifyIconA(dwMessage: DWORD, lpData: PNOTIFYICONDATAA) -> BOOL;
pub extern fn Shell_NotifyIconW(dwMessage: DWORD, lpData: PNOTIFYICONDATAW) -> BOOL;
pub extern fn Shell_NotifyIconGetRect(identifier: ?&const NOTIFYICONIDENTIFIER, iconLocation: ?&RECT) -> HRESULT;
pub const struct__SHFILEINFOA = extern struct {
hIcon: HICON,
iIcon: c_int,
dwAttributes: DWORD,
szDisplayName: [260]CHAR,
szTypeName: [80]CHAR,
};
pub const SHFILEINFOA = struct__SHFILEINFOA;
pub const struct__SHFILEINFOW = extern struct {
hIcon: HICON,
iIcon: c_int,
dwAttributes: DWORD,
szDisplayName: [260]WCHAR,
szTypeName: [80]WCHAR,
};
pub const SHFILEINFOW = struct__SHFILEINFOW;
pub const SHFILEINFO = SHFILEINFOA;
pub extern fn SHGetFileInfoA(pszPath: LPCSTR, dwFileAttributes: DWORD, psfi: ?&SHFILEINFOA, cbFileInfo: UINT, uFlags: UINT) -> DWORD_PTR;
pub extern fn SHGetFileInfoW(pszPath: LPCWSTR, dwFileAttributes: DWORD, psfi: ?&SHFILEINFOW, cbFileInfo: UINT, uFlags: UINT) -> DWORD_PTR;
pub const struct__SHSTOCKICONINFO = extern struct {
cbSize: DWORD,
hIcon: HICON,
iSysImageIndex: c_int,
iIcon: c_int,
szPath: [260]WCHAR,
};
pub const SHSTOCKICONINFO = struct__SHSTOCKICONINFO;
pub const SIID_DOCNOASSOC: c_int = 0;
pub const SIID_DOCASSOC: c_int = 1;
pub const SIID_APPLICATION: c_int = 2;
pub const SIID_FOLDER: c_int = 3;
pub const SIID_FOLDEROPEN: c_int = 4;
pub const SIID_DRIVE525: c_int = 5;
pub const SIID_DRIVE35: c_int = 6;
pub const SIID_DRIVEREMOVE: c_int = 7;
pub const SIID_DRIVEFIXED: c_int = 8;
pub const SIID_DRIVENET: c_int = 9;
pub const SIID_DRIVENETDISABLED: c_int = 10;
pub const SIID_DRIVECD: c_int = 11;
pub const SIID_DRIVERAM: c_int = 12;
pub const SIID_WORLD: c_int = 13;
pub const SIID_SERVER: c_int = 15;
pub const SIID_PRINTER: c_int = 16;
pub const SIID_MYNETWORK: c_int = 17;
pub const SIID_FIND: c_int = 22;
pub const SIID_HELP: c_int = 23;
pub const SIID_SHARE: c_int = 28;
pub const SIID_LINK: c_int = 29;
pub const SIID_SLOWFILE: c_int = 30;
pub const SIID_RECYCLER: c_int = 31;
pub const SIID_RECYCLERFULL: c_int = 32;
pub const SIID_MEDIACDAUDIO: c_int = 40;
pub const SIID_LOCK: c_int = 47;
pub const SIID_AUTOLIST: c_int = 49;
pub const SIID_PRINTERNET: c_int = 50;
pub const SIID_SERVERSHARE: c_int = 51;
pub const SIID_PRINTERFAX: c_int = 52;
pub const SIID_PRINTERFAXNET: c_int = 53;
pub const SIID_PRINTERFILE: c_int = 54;
pub const SIID_STACK: c_int = 55;
pub const SIID_MEDIASVCD: c_int = 56;
pub const SIID_STUFFEDFOLDER: c_int = 57;
pub const SIID_DRIVEUNKNOWN: c_int = 58;
pub const SIID_DRIVEDVD: c_int = 59;
pub const SIID_MEDIADVD: c_int = 60;
pub const SIID_MEDIADVDRAM: c_int = 61;
pub const SIID_MEDIADVDRW: c_int = 62;
pub const SIID_MEDIADVDR: c_int = 63;
pub const SIID_MEDIADVDROM: c_int = 64;
pub const SIID_MEDIACDAUDIOPLUS: c_int = 65;
pub const SIID_MEDIACDRW: c_int = 66;
pub const SIID_MEDIACDR: c_int = 67;
pub const SIID_MEDIACDBURN: c_int = 68;
pub const SIID_MEDIABLANKCD: c_int = 69;
pub const SIID_MEDIACDROM: c_int = 70;
pub const SIID_AUDIOFILES: c_int = 71;
pub const SIID_IMAGEFILES: c_int = 72;
pub const SIID_VIDEOFILES: c_int = 73;
pub const SIID_MIXEDFILES: c_int = 74;
pub const SIID_FOLDERBACK: c_int = 75;
pub const SIID_FOLDERFRONT: c_int = 76;
pub const SIID_SHIELD: c_int = 77;
pub const SIID_WARNING: c_int = 78;
pub const SIID_INFO: c_int = 79;
pub const SIID_ERROR: c_int = 80;
pub const SIID_KEY: c_int = 81;
pub const SIID_SOFTWARE: c_int = 82;
pub const SIID_RENAME: c_int = 83;
pub const SIID_DELETE: c_int = 84;
pub const SIID_MEDIAAUDIODVD: c_int = 85;
pub const SIID_MEDIAMOVIEDVD: c_int = 86;
pub const SIID_MEDIAENHANCEDCD: c_int = 87;
pub const SIID_MEDIAENHANCEDDVD: c_int = 88;
pub const SIID_MEDIAHDDVD: c_int = 89;
pub const SIID_MEDIABLURAY: c_int = 90;
pub const SIID_MEDIAVCD: c_int = 91;
pub const SIID_MEDIADVDPLUSR: c_int = 92;
pub const SIID_MEDIADVDPLUSRW: c_int = 93;
pub const SIID_DESKTOPPC: c_int = 94;
pub const SIID_MOBILEPC: c_int = 95;
pub const SIID_USERS: c_int = 96;
pub const SIID_MEDIASMARTMEDIA: c_int = 97;
pub const SIID_MEDIACOMPACTFLASH: c_int = 98;
pub const SIID_DEVICECELLPHONE: c_int = 99;
pub const SIID_DEVICECAMERA: c_int = 100;
pub const SIID_DEVICEVIDEOCAMERA: c_int = 101;
pub const SIID_DEVICEAUDIOPLAYER: c_int = 102;
pub const SIID_NETWORKCONNECT: c_int = 103;
pub const SIID_INTERNET: c_int = 104;
pub const SIID_ZIPFILE: c_int = 105;
pub const SIID_SETTINGS: c_int = 106;
pub const SIID_DRIVEHDDVD: c_int = 132;
pub const SIID_DRIVEBD: c_int = 133;
pub const SIID_MEDIAHDDVDROM: c_int = 134;
pub const SIID_MEDIAHDDVDR: c_int = 135;
pub const SIID_MEDIAHDDVDRAM: c_int = 136;
pub const SIID_MEDIABDROM: c_int = 137;
pub const SIID_MEDIABDR: c_int = 138;
pub const SIID_MEDIABDRE: c_int = 139;
pub const SIID_CLUSTEREDDRIVE: c_int = 140;
pub const SIID_MAX_ICONS: c_int = 175;
pub const enum_SHSTOCKICONID = c_int;
pub const SIID_DOCNOASSOC: c_int = 0;
pub const SIID_DOCASSOC: c_int = 1;
pub const SIID_APPLICATION: c_int = 2;
pub const SIID_FOLDER: c_int = 3;
pub const SIID_FOLDEROPEN: c_int = 4;
pub const SIID_DRIVE525: c_int = 5;
pub const SIID_DRIVE35: c_int = 6;
pub const SIID_DRIVEREMOVE: c_int = 7;
pub const SIID_DRIVEFIXED: c_int = 8;
pub const SIID_DRIVENET: c_int = 9;
pub const SIID_DRIVENETDISABLED: c_int = 10;
pub const SIID_DRIVECD: c_int = 11;
pub const SIID_DRIVERAM: c_int = 12;
pub const SIID_WORLD: c_int = 13;
pub const SIID_SERVER: c_int = 15;
pub const SIID_PRINTER: c_int = 16;
pub const SIID_MYNETWORK: c_int = 17;
pub const SIID_FIND: c_int = 22;
pub const SIID_HELP: c_int = 23;
pub const SIID_SHARE: c_int = 28;
pub const SIID_LINK: c_int = 29;
pub const SIID_SLOWFILE: c_int = 30;
pub const SIID_RECYCLER: c_int = 31;
pub const SIID_RECYCLERFULL: c_int = 32;
pub const SIID_MEDIACDAUDIO: c_int = 40;
pub const SIID_LOCK: c_int = 47;
pub const SIID_AUTOLIST: c_int = 49;
pub const SIID_PRINTERNET: c_int = 50;
pub const SIID_SERVERSHARE: c_int = 51;
pub const SIID_PRINTERFAX: c_int = 52;
pub const SIID_PRINTERFAXNET: c_int = 53;
pub const SIID_PRINTERFILE: c_int = 54;
pub const SIID_STACK: c_int = 55;
pub const SIID_MEDIASVCD: c_int = 56;
pub const SIID_STUFFEDFOLDER: c_int = 57;
pub const SIID_DRIVEUNKNOWN: c_int = 58;
pub const SIID_DRIVEDVD: c_int = 59;
pub const SIID_MEDIADVD: c_int = 60;
pub const SIID_MEDIADVDRAM: c_int = 61;
pub const SIID_MEDIADVDRW: c_int = 62;
pub const SIID_MEDIADVDR: c_int = 63;
pub const SIID_MEDIADVDROM: c_int = 64;
pub const SIID_MEDIACDAUDIOPLUS: c_int = 65;
pub const SIID_MEDIACDRW: c_int = 66;
pub const SIID_MEDIACDR: c_int = 67;
pub const SIID_MEDIACDBURN: c_int = 68;
pub const SIID_MEDIABLANKCD: c_int = 69;
pub const SIID_MEDIACDROM: c_int = 70;
pub const SIID_AUDIOFILES: c_int = 71;
pub const SIID_IMAGEFILES: c_int = 72;
pub const SIID_VIDEOFILES: c_int = 73;
pub const SIID_MIXEDFILES: c_int = 74;
pub const SIID_FOLDERBACK: c_int = 75;
pub const SIID_FOLDERFRONT: c_int = 76;
pub const SIID_SHIELD: c_int = 77;
pub const SIID_WARNING: c_int = 78;
pub const SIID_INFO: c_int = 79;
pub const SIID_ERROR: c_int = 80;
pub const SIID_KEY: c_int = 81;
pub const SIID_SOFTWARE: c_int = 82;
pub const SIID_RENAME: c_int = 83;
pub const SIID_DELETE: c_int = 84;
pub const SIID_MEDIAAUDIODVD: c_int = 85;
pub const SIID_MEDIAMOVIEDVD: c_int = 86;
pub const SIID_MEDIAENHANCEDCD: c_int = 87;
pub const SIID_MEDIAENHANCEDDVD: c_int = 88;
pub const SIID_MEDIAHDDVD: c_int = 89;
pub const SIID_MEDIABLURAY: c_int = 90;
pub const SIID_MEDIAVCD: c_int = 91;
pub const SIID_MEDIADVDPLUSR: c_int = 92;
pub const SIID_MEDIADVDPLUSRW: c_int = 93;
pub const SIID_DESKTOPPC: c_int = 94;
pub const SIID_MOBILEPC: c_int = 95;
pub const SIID_USERS: c_int = 96;
pub const SIID_MEDIASMARTMEDIA: c_int = 97;
pub const SIID_MEDIACOMPACTFLASH: c_int = 98;
pub const SIID_DEVICECELLPHONE: c_int = 99;
pub const SIID_DEVICECAMERA: c_int = 100;
pub const SIID_DEVICEVIDEOCAMERA: c_int = 101;
pub const SIID_DEVICEAUDIOPLAYER: c_int = 102;
pub const SIID_NETWORKCONNECT: c_int = 103;
pub const SIID_INTERNET: c_int = 104;
pub const SIID_ZIPFILE: c_int = 105;
pub const SIID_SETTINGS: c_int = 106;
pub const SIID_DRIVEHDDVD: c_int = 132;
pub const SIID_DRIVEBD: c_int = 133;
pub const SIID_MEDIAHDDVDROM: c_int = 134;
pub const SIID_MEDIAHDDVDR: c_int = 135;
pub const SIID_MEDIAHDDVDRAM: c_int = 136;
pub const SIID_MEDIABDROM: c_int = 137;
pub const SIID_MEDIABDR: c_int = 138;
pub const SIID_MEDIABDRE: c_int = 139;
pub const SIID_CLUSTEREDDRIVE: c_int = 140;
pub const SIID_MAX_ICONS: c_int = 175;
pub const enum_SHSTOCKICONID = c_int;
pub const SHSTOCKICONID = enum_SHSTOCKICONID;
pub extern fn SHGetStockIconInfo(siid: SHSTOCKICONID, uFlags: UINT, psii: ?&SHSTOCKICONINFO) -> HRESULT;
pub extern fn SHGetNewLinkInfoA(pszLinkTo: LPCSTR, pszDir: LPCSTR, pszName: LPSTR, pfMustCopy: ?&BOOL, uFlags: UINT) -> BOOL;
pub extern fn SHGetNewLinkInfoW(pszLinkTo: LPCWSTR, pszDir: LPCWSTR, pszName: LPWSTR, pfMustCopy: ?&BOOL, uFlags: UINT) -> BOOL;
pub extern fn SHInvokePrinterCommandA(hwnd: HWND, uAction: UINT, lpBuf1: LPCSTR, lpBuf2: LPCSTR, fModal: BOOL) -> BOOL;
pub extern fn SHInvokePrinterCommandW(hwnd: HWND, uAction: UINT, lpBuf1: LPCWSTR, lpBuf2: LPCWSTR, fModal: BOOL) -> BOOL;
pub const struct__OPEN_PRINTER_PROPS_INFOA = extern struct {
dwSize: DWORD,
pszSheetName: LPSTR,
uSheetIndex: UINT,
dwFlags: DWORD,
bModal: BOOL,
};
pub const OPEN_PRINTER_PROPS_INFOA = struct__OPEN_PRINTER_PROPS_INFOA;
pub const POPEN_PRINTER_PROPS_INFOA = ?&struct__OPEN_PRINTER_PROPS_INFOA;
pub const struct__OPEN_PRINTER_PROPS_INFOW = extern struct {
dwSize: DWORD,
pszSheetName: LPWSTR,
uSheetIndex: UINT,
dwFlags: DWORD,
bModal: BOOL,
};
pub const OPEN_PRINTER_PROPS_INFOW = struct__OPEN_PRINTER_PROPS_INFOW;
pub const POPEN_PRINTER_PROPS_INFOW = ?&struct__OPEN_PRINTER_PROPS_INFOW;
pub const OPEN_PRINTER_PROPS_INFO = OPEN_PRINTER_PROPS_INFOA;
pub const POPEN_PRINTER_PROPS_INFO = POPEN_PRINTER_PROPS_INFOA;
pub extern fn SHLoadNonloadedIconOverlayIdentifiers() -> HRESULT;
pub extern fn SHIsFileAvailableOffline(pwszPath: PCWSTR, pdwStatus: ?&DWORD) -> HRESULT;
pub extern fn SHSetLocalizedName(pszPath: PCWSTR, pszResModule: PCWSTR, idsRes: c_int) -> HRESULT;
pub extern fn SHRemoveLocalizedName(pszPath: PCWSTR) -> HRESULT;
pub extern fn SHGetLocalizedName(pszPath: PCWSTR, pszResModule: PWSTR, cch: UINT, pidsRes: ?&c_int) -> HRESULT;
pub extern fn ShellMessageBoxA(hAppInst: HINSTANCE, hWnd: HWND, lpcText: LPCSTR, lpcTitle: LPCSTR, fuStyle: UINT) -> c_int;
pub extern fn ShellMessageBoxW(hAppInst: HINSTANCE, hWnd: HWND, lpcText: LPCWSTR, lpcTitle: LPCWSTR, fuStyle: UINT) -> c_int;
pub extern fn IsLFNDriveA(pszPath: LPCSTR) -> BOOL;
pub extern fn IsLFNDriveW(pszPath: LPCWSTR) -> BOOL;
pub extern fn SHEnumerateUnreadMailAccountsA(hKeyUser: HKEY, dwIndex: DWORD, pszMailAddress: LPSTR, cchMailAddress: c_int) -> HRESULT;
pub extern fn SHEnumerateUnreadMailAccountsW(hKeyUser: HKEY, dwIndex: DWORD, pszMailAddress: LPWSTR, cchMailAddress: c_int) -> HRESULT;
pub extern fn SHGetUnreadMailCountA(hKeyUser: HKEY, pszMailAddress: LPCSTR, pdwCount: ?&DWORD, pFileTime: ?&FILETIME, pszShellExecuteCommand: LPSTR, cchShellExecuteCommand: c_int) -> HRESULT;
pub extern fn SHGetUnreadMailCountW(hKeyUser: HKEY, pszMailAddress: LPCWSTR, pdwCount: ?&DWORD, pFileTime: ?&FILETIME, pszShellExecuteCommand: LPWSTR, cchShellExecuteCommand: c_int) -> HRESULT;
pub extern fn SHSetUnreadMailCountA(pszMailAddress: LPCSTR, dwCount: DWORD, pszShellExecuteCommand: LPCSTR) -> HRESULT;
pub extern fn SHSetUnreadMailCountW(pszMailAddress: LPCWSTR, dwCount: DWORD, pszShellExecuteCommand: LPCWSTR) -> HRESULT;
pub extern fn SHTestTokenMembership(hToken: HANDLE, ulRID: ULONG) -> BOOL;
pub extern fn SHGetImageList(iImageList: c_int, riid: ?&const IID, ppvObj: ?&(?&c_void)) -> HRESULT;
pub const PFNCANSHAREFOLDERW = ?extern fn(PCWSTR) -> HRESULT;
pub const PFNSHOWSHAREFOLDERUIW = ?extern fn(HWND, PCWSTR) -> HRESULT;
pub extern fn InitNetworkAddressControl() -> BOOL;
pub const struct_NET_ADDRESS_INFO_ = @OpaqueType();
pub const struct_tagNC_ADDRESS = extern struct {
pAddrInfo: ?&struct_NET_ADDRESS_INFO_,
PortNumber: USHORT,
PrefixLength: BYTE,
};
pub const NC_ADDRESS = struct_tagNC_ADDRESS;
pub const PNC_ADDRESS = ?&struct_tagNC_ADDRESS;
pub extern fn SHGetDriveMedia(pszDrive: PCWSTR, pdwMediaContent: ?&DWORD) -> HRESULT;
pub const struct__PERF_DATA_BLOCK = @OpaqueType();
pub const PERF_DATA_BLOCK = struct__PERF_DATA_BLOCK;
pub const PPERF_DATA_BLOCK = ?&struct__PERF_DATA_BLOCK;
pub const struct__PERF_OBJECT_TYPE = @OpaqueType();
pub const PERF_OBJECT_TYPE = struct__PERF_OBJECT_TYPE;
pub const PPERF_OBJECT_TYPE = ?&struct__PERF_OBJECT_TYPE;
pub const struct__PERF_COUNTER_DEFINITION = extern struct {
ByteLength: DWORD,
CounterNameTitleIndex: DWORD,
CounterNameTitle: DWORD,
CounterHelpTitleIndex: DWORD,
CounterHelpTitle: DWORD,
DefaultScale: LONG,
DetailLevel: DWORD,
CounterType: DWORD,
CounterSize: DWORD,
CounterOffset: DWORD,
};
pub const PERF_COUNTER_DEFINITION = struct__PERF_COUNTER_DEFINITION;
pub const PPERF_COUNTER_DEFINITION = ?&struct__PERF_COUNTER_DEFINITION;
pub const struct__PERF_INSTANCE_DEFINITION = extern struct {
ByteLength: DWORD,
ParentObjectTitleIndex: DWORD,
ParentObjectInstance: DWORD,
UniqueID: LONG,
NameOffset: DWORD,
NameLength: DWORD,
};
pub const PERF_INSTANCE_DEFINITION = struct__PERF_INSTANCE_DEFINITION;
pub const PPERF_INSTANCE_DEFINITION = ?&struct__PERF_INSTANCE_DEFINITION;
pub const struct__PERF_COUNTER_BLOCK = extern struct {
ByteLength: DWORD,
};
pub const PERF_COUNTER_BLOCK = struct__PERF_COUNTER_BLOCK;
pub const PPERF_COUNTER_BLOCK = ?&struct__PERF_COUNTER_BLOCK;
pub const PM_OPEN_PROC = extern fn(LPWSTR) -> DWORD;
pub const PM_COLLECT_PROC = extern fn(LPWSTR, ?&LPVOID, LPDWORD, LPDWORD) -> DWORD;
pub const PM_CLOSE_PROC = extern fn() -> DWORD;
pub const PM_QUERY_PROC = extern fn(LPDWORD, ?&LPVOID, LPDWORD, LPDWORD) -> DWORD;
pub const u_char = u8;
pub const u_short = c_ushort;
pub const u_int = c_uint;
pub const u_long = c_ulong;
pub const SOCKET = UINT_PTR;
pub const struct_fd_set = extern struct {
fd_count: u_int,
fd_array: [64]SOCKET,
};
pub const fd_set = struct_fd_set;
pub extern fn __WSAFDIsSet(arg0: SOCKET, arg1: ?&fd_set) -> c_int;
pub const struct_timeval = extern struct {
tv_sec: c_long,
tv_usec: c_long,
};
pub const struct_hostent = extern struct {
h_name: ?&u8,
h_aliases: ?&(?&u8),
h_addrtype: c_short,
h_length: c_short,
h_addr_list: ?&(?&u8),
};
pub const struct_netent = extern struct {
n_name: ?&u8,
n_aliases: ?&(?&u8),
n_addrtype: c_short,
n_net: u_long,
};
pub const struct_servent = extern struct {
s_name: ?&u8,
s_aliases: ?&(?&u8),
s_proto: ?&u8,
s_port: c_short,
};
pub const struct_protoent = extern struct {
p_name: ?&u8,
p_aliases: ?&(?&u8),
p_proto: c_short,
};
pub const struct_in_addr = @OpaqueType();
pub const IN_ADDR = struct_in_addr;
pub const PIN_ADDR = ?&struct_in_addr;
pub const LPIN_ADDR = ?&struct_in_addr;
pub const struct_sockaddr_in = extern struct {
sin_family: c_short,
sin_port: u_short,
sin_addr: struct_in_addr,
sin_zero: [8]u8,
};
pub const struct_WSAData = extern struct {
wVersion: WORD,
wHighVersion: WORD,
iMaxSockets: c_ushort,
iMaxUdpDg: c_ushort,
lpVendorInfo: ?&u8,
szDescription: [257]u8,
szSystemStatus: [129]u8,
};
pub const WSADATA = struct_WSAData;
pub const LPWSADATA = ?&WSADATA;
pub const struct_ip_mreq = extern struct {
imr_multiaddr: struct_in_addr,
imr_interface: struct_in_addr,
};
pub const struct_sockaddr = extern struct {
sa_family: u_short,
sa_data: [14]u8,
};
pub const struct_sockproto = extern struct {
sp_family: u_short,
sp_protocol: u_short,
};
pub const struct_linger = extern struct {
l_onoff: u_short,
l_linger: u_short,
};
pub extern fn accept(s: SOCKET, addr: ?&struct_sockaddr, addrlen: ?&c_int) -> SOCKET;
pub extern fn bind(s: SOCKET, addr: ?&const struct_sockaddr, namelen: c_int) -> c_int;
pub extern fn closesocket(s: SOCKET) -> c_int;
pub extern fn connect(s: SOCKET, name: ?&const struct_sockaddr, namelen: c_int) -> c_int;
pub extern fn ioctlsocket(s: SOCKET, cmd: c_long, argp: ?&u_long) -> c_int;
pub extern fn getpeername(s: SOCKET, name: ?&struct_sockaddr, namelen: ?&c_int) -> c_int;
pub extern fn getsockname(s: SOCKET, name: ?&struct_sockaddr, namelen: ?&c_int) -> c_int;
pub extern fn getsockopt(s: SOCKET, level: c_int, optname: c_int, optval: ?&u8, optlen: ?&c_int) -> c_int;
pub extern fn htonl(hostlong: u_long) -> u_long;
pub extern fn htons(hostshort: u_short) -> u_short;
pub extern fn inet_addr(cp: ?&const u8) -> c_ulong;
pub extern fn inet_ntoa(in: struct_in_addr) -> ?&u8;
pub extern fn listen(s: SOCKET, backlog: c_int) -> c_int;
pub extern fn ntohl(netlong: u_long) -> u_long;
pub extern fn ntohs(netshort: u_short) -> u_short;
pub extern fn recv(s: SOCKET, buf: ?&u8, len: c_int, flags: c_int) -> c_int;
pub extern fn recvfrom(s: SOCKET, buf: ?&u8, len: c_int, flags: c_int, from: ?&struct_sockaddr, fromlen: ?&c_int) -> c_int;
pub extern fn select(nfds: c_int, readfds: ?&fd_set, writefds: ?&fd_set, exceptfds: ?&fd_set, timeout: ?&const struct_timeval) -> c_int;
pub extern fn send(s: SOCKET, buf: ?&const u8, len: c_int, flags: c_int) -> c_int;
pub extern fn sendto(s: SOCKET, buf: ?&const u8, len: c_int, flags: c_int, to: ?&const struct_sockaddr, tolen: c_int) -> c_int;
pub extern fn setsockopt(s: SOCKET, level: c_int, optname: c_int, optval: ?&const u8, optlen: c_int) -> c_int;
pub extern fn shutdown(s: SOCKET, how: c_int) -> c_int;
pub extern fn socket(af: c_int, type: c_int, protocol: c_int) -> SOCKET;
pub extern fn gethostbyaddr(addr: ?&const u8, len: c_int, type: c_int) -> ?&struct_hostent;
pub extern fn gethostbyname(name: ?&const u8) -> ?&struct_hostent;
pub extern fn gethostname(name: ?&u8, namelen: c_int) -> c_int;
pub extern fn getservbyport(port: c_int, proto: ?&const u8) -> ?&struct_servent;
pub extern fn getservbyname(name: ?&const u8, proto: ?&const u8) -> ?&struct_servent;
pub extern fn getprotobynumber(proto: c_int) -> ?&struct_protoent;
pub extern fn getprotobyname(name: ?&const u8) -> ?&struct_protoent;
pub extern fn WSAStartup(wVersionRequired: WORD, lpWSAData: LPWSADATA) -> c_int;
pub extern fn WSACleanup() -> c_int;
pub extern fn WSASetLastError(iError: c_int);
pub extern fn WSAGetLastError() -> c_int;
pub extern fn WSAIsBlocking() -> BOOL;
pub extern fn WSAUnhookBlockingHook() -> c_int;
pub extern fn WSACancelBlockingCall() -> c_int;
pub extern fn WSAAsyncGetServByName(hWnd: HWND, wMsg: u_int, name: ?&const u8, proto: ?&const u8, buf: ?&u8, buflen: c_int) -> HANDLE;
pub extern fn WSAAsyncGetServByPort(hWnd: HWND, wMsg: u_int, port: c_int, proto: ?&const u8, buf: ?&u8, buflen: c_int) -> HANDLE;
pub extern fn WSAAsyncGetProtoByName(hWnd: HWND, wMsg: u_int, name: ?&const u8, buf: ?&u8, buflen: c_int) -> HANDLE;
pub extern fn WSAAsyncGetProtoByNumber(hWnd: HWND, wMsg: u_int, number: c_int, buf: ?&u8, buflen: c_int) -> HANDLE;
pub extern fn WSAAsyncGetHostByName(hWnd: HWND, wMsg: u_int, name: ?&const u8, buf: ?&u8, buflen: c_int) -> HANDLE;
pub extern fn WSAAsyncGetHostByAddr(hWnd: HWND, wMsg: u_int, addr: ?&const u8, len: c_int, type: c_int, buf: ?&u8, buflen: c_int) -> HANDLE;
pub extern fn WSACancelAsyncRequest(hAsyncTaskHandle: HANDLE) -> c_int;
pub extern fn WSAAsyncSelect(s: SOCKET, hWnd: HWND, wMsg: u_int, lEvent: c_long) -> c_int;
pub extern fn WSARecvEx(s: SOCKET, buf: ?&u8, len: c_int, flags: ?&c_int) -> c_int;
pub const struct__TRANSMIT_FILE_BUFFERS = extern struct {
Head: PVOID,
HeadLength: DWORD,
Tail: PVOID,
TailLength: DWORD,
};
pub const TRANSMIT_FILE_BUFFERS = struct__TRANSMIT_FILE_BUFFERS;
pub const PTRANSMIT_FILE_BUFFERS = ?&struct__TRANSMIT_FILE_BUFFERS;
pub const LPTRANSMIT_FILE_BUFFERS = ?&struct__TRANSMIT_FILE_BUFFERS;
pub extern fn TransmitFile(hSocket: SOCKET, hFile: HANDLE, nNumberOfBytesToWrite: DWORD, nNumberOfBytesPerSend: DWORD, lpOverlapped: LPOVERLAPPED, lpTransmitBuffers: LPTRANSMIT_FILE_BUFFERS, dwReserved: DWORD) -> BOOL;
pub extern fn AcceptEx(sListenSocket: SOCKET, sAcceptSocket: SOCKET, lpOutputBuffer: PVOID, dwReceiveDataLength: DWORD, dwLocalAddressLength: DWORD, dwRemoteAddressLength: DWORD, lpdwBytesReceived: LPDWORD, lpOverlapped: LPOVERLAPPED) -> BOOL;
pub extern fn GetAcceptExSockaddrs(lpOutputBuffer: PVOID, dwReceiveDataLength: DWORD, dwLocalAddressLength: DWORD, dwRemoteAddressLength: DWORD, LocalSockaddr: ?&(?&struct_sockaddr), LocalSockaddrLength: LPINT, RemoteSockaddr: ?&(?&struct_sockaddr), RemoteSockaddrLength: LPINT);
pub const SOCKADDR = struct_sockaddr;
pub const PSOCKADDR = ?&struct_sockaddr;
pub const LPSOCKADDR = ?&struct_sockaddr;
pub const SOCKADDR_IN = struct_sockaddr_in;
pub const PSOCKADDR_IN = ?&struct_sockaddr_in;
pub const LPSOCKADDR_IN = ?&struct_sockaddr_in;
pub const LINGER = struct_linger;
pub const PLINGER = ?&struct_linger;
pub const LPLINGER = ?&struct_linger;
pub const FD_SET = struct_fd_set;
pub const PFD_SET = ?&struct_fd_set;
pub const LPFD_SET = ?&struct_fd_set;
pub const HOSTENT = struct_hostent;
pub const PHOSTENT = ?&struct_hostent;
pub const LPHOSTENT = ?&struct_hostent;
pub const SERVENT = struct_servent;
pub const PSERVENT = ?&struct_servent;
pub const LPSERVENT = ?&struct_servent;
pub const PROTOENT = struct_protoent;
pub const PPROTOENT = ?&struct_protoent;
pub const LPPROTOENT = ?&struct_protoent;
pub const TIMEVAL = struct_timeval;
pub const PTIMEVAL = ?&struct_timeval;
pub const LPTIMEVAL = ?&struct_timeval;
pub const ALG_ID = c_uint;
pub const HCRYPTPROV = ULONG_PTR;
pub const HCRYPTKEY = ULONG_PTR;
pub const HCRYPTHASH = ULONG_PTR;
pub const struct__CMS_KEY_INFO = extern struct {
dwVersion: DWORD,
Algid: ALG_ID,
pbOID: ?&BYTE,
cbOID: DWORD,
};
pub const CMS_KEY_INFO = struct__CMS_KEY_INFO;
pub const PCMS_KEY_INFO = ?&struct__CMS_KEY_INFO;
pub const struct__HMAC_Info = extern struct {
HashAlgid: ALG_ID,
pbInnerString: ?&BYTE,
cbInnerString: DWORD,
pbOuterString: ?&BYTE,
cbOuterString: DWORD,
};
pub const HMAC_INFO = struct__HMAC_Info;
pub const PHMAC_INFO = ?&struct__HMAC_Info;
pub const struct__SCHANNEL_ALG = extern struct {
dwUse: DWORD,
Algid: ALG_ID,
cBits: DWORD,
dwFlags: DWORD,
dwReserved: DWORD,
};
pub const SCHANNEL_ALG = struct__SCHANNEL_ALG;
pub const PSCHANNEL_ALG = ?&struct__SCHANNEL_ALG;
pub const struct__PROV_ENUMALGS = extern struct {
aiAlgid: ALG_ID,
dwBitLen: DWORD,
dwNameLen: DWORD,
szName: [20]CHAR,
};
pub const PROV_ENUMALGS = struct__PROV_ENUMALGS;
pub const struct__PROV_ENUMALGS_EX = extern struct {
aiAlgid: ALG_ID,
dwDefaultLen: DWORD,
dwMinLen: DWORD,
dwMaxLen: DWORD,
dwProtocols: DWORD,
dwNameLen: DWORD,
szName: [20]CHAR,
dwLongNameLen: DWORD,
szLongName: [40]CHAR,
};
pub const PROV_ENUMALGS_EX = struct__PROV_ENUMALGS_EX;
pub const struct__PUBLICKEYSTRUC = extern struct {
bType: BYTE,
bVersion: BYTE,
reserved: WORD,
aiKeyAlg: ALG_ID,
};
pub const BLOBHEADER = struct__PUBLICKEYSTRUC;
pub const PUBLICKEYSTRUC = struct__PUBLICKEYSTRUC;
pub const struct__RSAPUBKEY = extern struct {
magic: DWORD,
bitlen: DWORD,
pubexp: DWORD,
};
pub const RSAPUBKEY = struct__RSAPUBKEY;
pub const struct__PUBKEY = extern struct {
magic: DWORD,
bitlen: DWORD,
};
pub const DHPUBKEY = struct__PUBKEY;
pub const DSSPUBKEY = struct__PUBKEY;
pub const KEAPUBKEY = struct__PUBKEY;
pub const TEKPUBKEY = struct__PUBKEY;
pub const struct__DSSSEED = extern struct {
counter: DWORD,
seed: [20]BYTE,
};
pub const DSSSEED = struct__DSSSEED;
pub const struct__PUBKEYVER3 = extern struct {
magic: DWORD,
bitlenP: DWORD,
bitlenQ: DWORD,
bitlenJ: DWORD,
DSSSeed: DSSSEED,
};
pub const DHPUBKEY_VER3 = struct__PUBKEYVER3;
pub const DSSPUBKEY_VER3 = struct__PUBKEYVER3;
pub const struct__PRIVKEYVER3 = extern struct {
magic: DWORD,
bitlenP: DWORD,
bitlenQ: DWORD,
bitlenJ: DWORD,
bitlenX: DWORD,
DSSSeed: DSSSEED,
};
pub const DHPRIVKEY_VER3 = struct__PRIVKEYVER3;
pub const DSSPRIVKEY_VER3 = struct__PRIVKEYVER3;
pub const struct__KEY_TYPE_SUBTYPE = extern struct {
dwKeySpec: DWORD,
Type: GUID,
Subtype: GUID,
};
pub const KEY_TYPE_SUBTYPE = struct__KEY_TYPE_SUBTYPE;
pub const PKEY_TYPE_SUBTYPE = ?&struct__KEY_TYPE_SUBTYPE;
pub const struct__CERT_FORTEZZA_DATA_PROP = extern struct {
SerialNumber: [8]u8,
CertIndex: c_int,
CertLabel: [36]u8,
};
pub const CERT_FORTEZZA_DATA_PROP = struct__CERT_FORTEZZA_DATA_PROP;
pub const struct__CRYPT_RC4_KEY_STATE = extern struct {
Key: [16]u8,
SBox: [256]u8,
i: u8,
j: u8,
};
pub const CRYPT_RC4_KEY_STATE = struct__CRYPT_RC4_KEY_STATE;
pub const PCRYPT_RC4_KEY_STATE = ?&struct__CRYPT_RC4_KEY_STATE;
pub const struct__CRYPT_DES_KEY_STATE = extern struct {
Key: [8]u8,
IV: [8]u8,
Feedback: [8]u8,
};
pub const CRYPT_DES_KEY_STATE = struct__CRYPT_DES_KEY_STATE;
pub const PCRYPT_DES_KEY_STATE = ?&struct__CRYPT_DES_KEY_STATE;
pub const struct__CRYPT_3DES_KEY_STATE = extern struct {
Key: [24]u8,
IV: [8]u8,
Feedback: [8]u8,
};
pub const CRYPT_3DES_KEY_STATE = struct__CRYPT_3DES_KEY_STATE;
pub const PCRYPT_3DES_KEY_STATE = ?&struct__CRYPT_3DES_KEY_STATE;
pub const struct__CRYPT_AES_128_KEY_STATE = extern struct {
Key: [16]u8,
IV: [16]u8,
EncryptionState: [11][16]u8,
DecryptionState: [11][16]u8,
Feedback: [16]u8,
};
pub const CRYPT_AES_128_KEY_STATE = struct__CRYPT_AES_128_KEY_STATE;
pub const PCRYPT_AES_128_KEY_STATE = ?&struct__CRYPT_AES_128_KEY_STATE;
pub const struct__CRYPT_AES_256_KEY_STATE = extern struct {
Key: [32]u8,
IV: [16]u8,
EncryptionState: [15][16]u8,
DecryptionState: [15][16]u8,
Feedback: [16]u8,
};
pub const CRYPT_AES_256_KEY_STATE = struct__CRYPT_AES_256_KEY_STATE;
pub const PCRYPT_AES_256_KEY_STATE = ?&struct__CRYPT_AES_256_KEY_STATE;
pub const struct__CRYPTOAPI_BLOB = extern struct {
cbData: DWORD,
pbData: ?&BYTE,
};
pub const CRYPT_INTEGER_BLOB = struct__CRYPTOAPI_BLOB;
pub const PCRYPT_INTEGER_BLOB = ?&struct__CRYPTOAPI_BLOB;
pub const CRYPT_UINT_BLOB = struct__CRYPTOAPI_BLOB;
pub const PCRYPT_UINT_BLOB = ?&struct__CRYPTOAPI_BLOB;
pub const CRYPT_OBJID_BLOB = struct__CRYPTOAPI_BLOB;
pub const PCRYPT_OBJID_BLOB = ?&struct__CRYPTOAPI_BLOB;
pub const CERT_NAME_BLOB = struct__CRYPTOAPI_BLOB;
pub const PCERT_NAME_BLOB = ?&struct__CRYPTOAPI_BLOB;
pub const CERT_RDN_VALUE_BLOB = struct__CRYPTOAPI_BLOB;
pub const PCERT_RDN_VALUE_BLOB = ?&struct__CRYPTOAPI_BLOB;
pub const CERT_BLOB = struct__CRYPTOAPI_BLOB;
pub const PCERT_BLOB = ?&struct__CRYPTOAPI_BLOB;
pub const CRL_BLOB = struct__CRYPTOAPI_BLOB;
pub const PCRL_BLOB = ?&struct__CRYPTOAPI_BLOB;
pub const DATA_BLOB = struct__CRYPTOAPI_BLOB;
pub const PDATA_BLOB = ?&struct__CRYPTOAPI_BLOB;
pub const CRYPT_DATA_BLOB = struct__CRYPTOAPI_BLOB;
pub const PCRYPT_DATA_BLOB = ?&struct__CRYPTOAPI_BLOB;
pub const CRYPT_HASH_BLOB = struct__CRYPTOAPI_BLOB;
pub const PCRYPT_HASH_BLOB = ?&struct__CRYPTOAPI_BLOB;
pub const CRYPT_DIGEST_BLOB = struct__CRYPTOAPI_BLOB;
pub const PCRYPT_DIGEST_BLOB = ?&struct__CRYPTOAPI_BLOB;
pub const CRYPT_DER_BLOB = struct__CRYPTOAPI_BLOB;
pub const PCRYPT_DER_BLOB = ?&struct__CRYPTOAPI_BLOB;
pub const CRYPT_ATTR_BLOB = struct__CRYPTOAPI_BLOB;
pub const PCRYPT_ATTR_BLOB = ?&struct__CRYPTOAPI_BLOB;
pub const struct__CMS_DH_KEY_INFO = extern struct {
dwVersion: DWORD,
Algid: ALG_ID,
pszContentEncObjId: LPSTR,
PubInfo: CRYPT_DATA_BLOB,
pReserved: ?&c_void,
};
pub const CMS_DH_KEY_INFO = struct__CMS_DH_KEY_INFO;
pub const PCMS_DH_KEY_INFO = ?&struct__CMS_DH_KEY_INFO;
pub extern fn CryptAcquireContextA(phProv: ?&HCRYPTPROV, szContainer: LPCSTR, szProvider: LPCSTR, dwProvType: DWORD, dwFlags: DWORD) -> BOOL;
pub extern fn CryptAcquireContextW(phProv: ?&HCRYPTPROV, szContainer: LPCWSTR, szProvider: LPCWSTR, dwProvType: DWORD, dwFlags: DWORD) -> BOOL;
pub extern fn CryptReleaseContext(hProv: HCRYPTPROV, dwFlags: DWORD) -> BOOL;
pub extern fn CryptGenKey(hProv: HCRYPTPROV, Algid: ALG_ID, dwFlags: DWORD, phKey: ?&HCRYPTKEY) -> BOOL;
pub extern fn CryptDeriveKey(hProv: HCRYPTPROV, Algid: ALG_ID, hBaseData: HCRYPTHASH, dwFlags: DWORD, phKey: ?&HCRYPTKEY) -> BOOL;
pub extern fn CryptDestroyKey(hKey: HCRYPTKEY) -> BOOL;
pub extern fn CryptSetKeyParam(hKey: HCRYPTKEY, dwParam: DWORD, pbData: ?&const BYTE, dwFlags: DWORD) -> BOOL;
pub extern fn CryptGetKeyParam(hKey: HCRYPTKEY, dwParam: DWORD, pbData: ?&BYTE, pdwDataLen: ?&DWORD, dwFlags: DWORD) -> BOOL;
pub extern fn CryptSetHashParam(hHash: HCRYPTHASH, dwParam: DWORD, pbData: ?&const BYTE, dwFlags: DWORD) -> BOOL;
pub extern fn CryptGetHashParam(hHash: HCRYPTHASH, dwParam: DWORD, pbData: ?&BYTE, pdwDataLen: ?&DWORD, dwFlags: DWORD) -> BOOL;
pub extern fn CryptSetProvParam(hProv: HCRYPTPROV, dwParam: DWORD, pbData: ?&const BYTE, dwFlags: DWORD) -> BOOL;
pub extern fn CryptGetProvParam(hProv: HCRYPTPROV, dwParam: DWORD, pbData: ?&BYTE, pdwDataLen: ?&DWORD, dwFlags: DWORD) -> BOOL;
pub extern fn CryptGenRandom(hProv: HCRYPTPROV, dwLen: DWORD, pbBuffer: ?&BYTE) -> BOOL;
pub extern fn CryptGetUserKey(hProv: HCRYPTPROV, dwKeySpec: DWORD, phUserKey: ?&HCRYPTKEY) -> BOOL;
pub extern fn CryptExportKey(hKey: HCRYPTKEY, hExpKey: HCRYPTKEY, dwBlobType: DWORD, dwFlags: DWORD, pbData: ?&BYTE, pdwDataLen: ?&DWORD) -> BOOL;
pub extern fn CryptImportKey(hProv: HCRYPTPROV, pbData: ?&const BYTE, dwDataLen: DWORD, hPubKey: HCRYPTKEY, dwFlags: DWORD, phKey: ?&HCRYPTKEY) -> BOOL;
pub extern fn CryptEncrypt(hKey: HCRYPTKEY, hHash: HCRYPTHASH, Final: BOOL, dwFlags: DWORD, pbData: ?&BYTE, pdwDataLen: ?&DWORD, dwBufLen: DWORD) -> BOOL;
pub extern fn CryptDecrypt(hKey: HCRYPTKEY, hHash: HCRYPTHASH, Final: BOOL, dwFlags: DWORD, pbData: ?&BYTE, pdwDataLen: ?&DWORD) -> BOOL;
pub extern fn CryptCreateHash(hProv: HCRYPTPROV, Algid: ALG_ID, hKey: HCRYPTKEY, dwFlags: DWORD, phHash: ?&HCRYPTHASH) -> BOOL;
pub extern fn CryptHashData(hHash: HCRYPTHASH, pbData: ?&const BYTE, dwDataLen: DWORD, dwFlags: DWORD) -> BOOL;
pub extern fn CryptHashSessionKey(hHash: HCRYPTHASH, hKey: HCRYPTKEY, dwFlags: DWORD) -> BOOL;
pub extern fn CryptDestroyHash(hHash: HCRYPTHASH) -> BOOL;
pub extern fn CryptSignHashA(hHash: HCRYPTHASH, dwKeySpec: DWORD, szDescription: LPCSTR, dwFlags: DWORD, pbSignature: ?&BYTE, pdwSigLen: ?&DWORD) -> BOOL;
pub extern fn CryptSignHashW(hHash: HCRYPTHASH, dwKeySpec: DWORD, szDescription: LPCWSTR, dwFlags: DWORD, pbSignature: ?&BYTE, pdwSigLen: ?&DWORD) -> BOOL;
pub extern fn CryptVerifySignatureA(hHash: HCRYPTHASH, pbSignature: ?&const BYTE, dwSigLen: DWORD, hPubKey: HCRYPTKEY, szDescription: LPCSTR, dwFlags: DWORD) -> BOOL;
pub extern fn CryptVerifySignatureW(hHash: HCRYPTHASH, pbSignature: ?&const BYTE, dwSigLen: DWORD, hPubKey: HCRYPTKEY, szDescription: LPCWSTR, dwFlags: DWORD) -> BOOL;
pub extern fn CryptSetProviderA(pszProvName: LPCSTR, dwProvType: DWORD) -> BOOL;
pub extern fn CryptSetProviderW(pszProvName: LPCWSTR, dwProvType: DWORD) -> BOOL;
pub extern fn CryptSetProviderExA(pszProvName: LPCSTR, dwProvType: DWORD, pdwReserved: ?&DWORD, dwFlags: DWORD) -> BOOL;
pub extern fn CryptSetProviderExW(pszProvName: LPCWSTR, dwProvType: DWORD, pdwReserved: ?&DWORD, dwFlags: DWORD) -> BOOL;
pub extern fn CryptGetDefaultProviderA(dwProvType: DWORD, pdwReserved: ?&DWORD, dwFlags: DWORD, pszProvName: LPSTR, pcbProvName: ?&DWORD) -> BOOL;
pub extern fn CryptGetDefaultProviderW(dwProvType: DWORD, pdwReserved: ?&DWORD, dwFlags: DWORD, pszProvName: LPWSTR, pcbProvName: ?&DWORD) -> BOOL;
pub extern fn CryptEnumProviderTypesA(dwIndex: DWORD, pdwReserved: ?&DWORD, dwFlags: DWORD, pdwProvType: ?&DWORD, szTypeName: LPSTR, pcbTypeName: ?&DWORD) -> BOOL;
pub extern fn CryptEnumProviderTypesW(dwIndex: DWORD, pdwReserved: ?&DWORD, dwFlags: DWORD, pdwProvType: ?&DWORD, szTypeName: LPWSTR, pcbTypeName: ?&DWORD) -> BOOL;
pub extern fn CryptEnumProvidersA(dwIndex: DWORD, pdwReserved: ?&DWORD, dwFlags: DWORD, pdwProvType: ?&DWORD, szProvName: LPSTR, pcbProvName: ?&DWORD) -> BOOL;
pub extern fn CryptEnumProvidersW(dwIndex: DWORD, pdwReserved: ?&DWORD, dwFlags: DWORD, pdwProvType: ?&DWORD, szProvName: LPWSTR, pcbProvName: ?&DWORD) -> BOOL;
pub extern fn CryptContextAddRef(hProv: HCRYPTPROV, pdwReserved: ?&DWORD, dwFlags: DWORD) -> BOOL;
pub extern fn CryptDuplicateKey(hKey: HCRYPTKEY, pdwReserved: ?&DWORD, dwFlags: DWORD, phKey: ?&HCRYPTKEY) -> BOOL;
pub extern fn CryptDuplicateHash(hHash: HCRYPTHASH, pdwReserved: ?&DWORD, dwFlags: DWORD, phHash: ?&HCRYPTHASH) -> BOOL;
pub extern fn GetEncSChannel(pData: ?&(?&BYTE), dwDecSize: ?&DWORD) -> BOOL;
pub const NTSTATUS = LONG;
pub const PNTSTATUS = ?&NTSTATUS;
pub const struct___BCRYPT_KEY_LENGTHS_STRUCT = extern struct {
dwMinLength: ULONG,
dwMaxLength: ULONG,
dwIncrement: ULONG,
};
pub const BCRYPT_KEY_LENGTHS_STRUCT = struct___BCRYPT_KEY_LENGTHS_STRUCT;
pub const BCRYPT_AUTH_TAG_LENGTHS_STRUCT = BCRYPT_KEY_LENGTHS_STRUCT;
pub const struct__BCRYPT_OID = extern struct {
cbOID: ULONG,
pbOID: PUCHAR,
};
pub const BCRYPT_OID = struct__BCRYPT_OID;
pub const struct__BCRYPT_OID_LIST = extern struct {
dwOIDCount: ULONG,
pOIDs: ?&BCRYPT_OID,
};
pub const BCRYPT_OID_LIST = struct__BCRYPT_OID_LIST;
pub const struct__BCRYPT_PKCS1_PADDING_INFO = extern struct {
pszAlgId: LPCWSTR,
};
pub const BCRYPT_PKCS1_PADDING_INFO = struct__BCRYPT_PKCS1_PADDING_INFO;
pub const struct__BCRYPT_PSS_PADDING_INFO = extern struct {
pszAlgId: LPCWSTR,
cbSalt: ULONG,
};
pub const BCRYPT_PSS_PADDING_INFO = struct__BCRYPT_PSS_PADDING_INFO;
pub const struct__BCRYPT_OAEP_PADDING_INFO = extern struct {
pszAlgId: LPCWSTR,
pbLabel: PUCHAR,
cbLabel: ULONG,
};
pub const BCRYPT_OAEP_PADDING_INFO = struct__BCRYPT_OAEP_PADDING_INFO;
pub const struct__BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO = extern struct {
cbSize: ULONG,
dwInfoVersion: ULONG,
pbNonce: PUCHAR,
cbNonce: ULONG,
pbAuthData: PUCHAR,
cbAuthData: ULONG,
pbTag: PUCHAR,
cbTag: ULONG,
pbMacContext: PUCHAR,
cbMacContext: ULONG,
cbAAD: ULONG,
cbData: ULONGLONG,
dwFlags: ULONG,
};
pub const BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO = struct__BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO;
pub const PBCRYPT_AUTHENTICATED_CIPHER_MODE_INFO = ?&struct__BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO;
pub const struct__BCryptBuffer = extern struct {
cbBuffer: ULONG,
BufferType: ULONG,
pvBuffer: PVOID,
};
pub const BCryptBuffer = struct__BCryptBuffer;
pub const PBCryptBuffer = ?&struct__BCryptBuffer;
pub const struct__BCryptBufferDesc = extern struct {
ulVersion: ULONG,
cBuffers: ULONG,
pBuffers: PBCryptBuffer,
};
pub const BCryptBufferDesc = struct__BCryptBufferDesc;
pub const PBCryptBufferDesc = ?&struct__BCryptBufferDesc;
pub const BCRYPT_HANDLE = PVOID;
pub const BCRYPT_ALG_HANDLE = PVOID;
pub const BCRYPT_KEY_HANDLE = PVOID;
pub const BCRYPT_HASH_HANDLE = PVOID;
pub const BCRYPT_SECRET_HANDLE = PVOID;
pub const struct__BCRYPT_KEY_BLOB = extern struct {
Magic: ULONG,
};
pub const BCRYPT_KEY_BLOB = struct__BCRYPT_KEY_BLOB;
pub const struct__BCRYPT_RSAKEY_BLOB = extern struct {
Magic: ULONG,
BitLength: ULONG,
cbPublicExp: ULONG,
cbModulus: ULONG,
cbPrime1: ULONG,
cbPrime2: ULONG,
};
pub const BCRYPT_RSAKEY_BLOB = struct__BCRYPT_RSAKEY_BLOB;
pub const struct__BCRYPT_ECCKEY_BLOB = extern struct {
dwMagic: ULONG,
cbKey: ULONG,
};
pub const BCRYPT_ECCKEY_BLOB = struct__BCRYPT_ECCKEY_BLOB;
pub const PBCRYPT_ECCKEY_BLOB = ?&struct__BCRYPT_ECCKEY_BLOB;
pub const struct__BCRYPT_DH_KEY_BLOB = extern struct {
dwMagic: ULONG,
cbKey: ULONG,
};
pub const BCRYPT_DH_KEY_BLOB = struct__BCRYPT_DH_KEY_BLOB;
pub const PBCRYPT_DH_KEY_BLOB = ?&struct__BCRYPT_DH_KEY_BLOB;
pub const struct__BCRYPT_DH_PARAMETER_HEADER = extern struct {
cbLength: ULONG,
dwMagic: ULONG,
cbKeyLength: ULONG,
};
pub const BCRYPT_DH_PARAMETER_HEADER = struct__BCRYPT_DH_PARAMETER_HEADER;
pub const struct__BCRYPT_DSA_KEY_BLOB = extern struct {
dwMagic: ULONG,
cbKey: ULONG,
Count: [4]UCHAR,
Seed: [20]UCHAR,
q: [20]UCHAR,
};
pub const BCRYPT_DSA_KEY_BLOB = struct__BCRYPT_DSA_KEY_BLOB;
pub const PBCRYPT_DSA_KEY_BLOB = ?&struct__BCRYPT_DSA_KEY_BLOB;
pub const DSA_HASH_ALGORITHM_SHA1 = 0;
pub const DSA_HASH_ALGORITHM_SHA256 = 1;
pub const DSA_HASH_ALGORITHM_SHA512 = 2;
pub const HASHALGORITHM_ENUM = extern enum {
DSA_HASH_ALGORITHM_SHA1,
DSA_HASH_ALGORITHM_SHA256,
DSA_HASH_ALGORITHM_SHA512,
};
pub const DSA_FIPS186_2 = 0;
pub const DSA_FIPS186_3 = 1;
pub const DSAFIPSVERSION_ENUM = extern enum {
DSA_FIPS186_2,
DSA_FIPS186_3,
};
pub const struct__BCRYPT_DSA_KEY_BLOB_V2 = extern struct {
dwMagic: ULONG,
cbKey: ULONG,
hashAlgorithm: HASHALGORITHM_ENUM,
standardVersion: DSAFIPSVERSION_ENUM,
cbSeedLength: ULONG,
cbGroupSize: ULONG,
Count: [4]UCHAR,
};
pub const BCRYPT_DSA_KEY_BLOB_V2 = struct__BCRYPT_DSA_KEY_BLOB_V2;
pub const PBCRYPT_DSA_KEY_BLOB_V2 = ?&struct__BCRYPT_DSA_KEY_BLOB_V2;
pub const struct__BCRYPT_KEY_DATA_BLOB_HEADER = extern struct {
dwMagic: ULONG,
dwVersion: ULONG,
cbKeyData: ULONG,
};
pub const BCRYPT_KEY_DATA_BLOB_HEADER = struct__BCRYPT_KEY_DATA_BLOB_HEADER;
pub const PBCRYPT_KEY_DATA_BLOB_HEADER = ?&struct__BCRYPT_KEY_DATA_BLOB_HEADER;
pub const struct__BCRYPT_DSA_PARAMETER_HEADER = extern struct {
cbLength: ULONG,
dwMagic: ULONG,
cbKeyLength: ULONG,
Count: [4]UCHAR,
Seed: [20]UCHAR,
q: [20]UCHAR,
};
pub const BCRYPT_DSA_PARAMETER_HEADER = struct__BCRYPT_DSA_PARAMETER_HEADER;
pub const struct__BCRYPT_DSA_PARAMETER_HEADER_V2 = extern struct {
cbLength: ULONG,
dwMagic: ULONG,
cbKeyLength: ULONG,
hashAlgorithm: HASHALGORITHM_ENUM,
standardVersion: DSAFIPSVERSION_ENUM,
cbSeedLength: ULONG,
cbGroupSize: ULONG,
Count: [4]UCHAR,
};
pub const BCRYPT_DSA_PARAMETER_HEADER_V2 = struct__BCRYPT_DSA_PARAMETER_HEADER_V2;
pub const BCRYPT_HASH_OPERATION_HASH_DATA: c_int = 1;
pub const BCRYPT_HASH_OPERATION_FINISH_HASH: c_int = 2;
pub const BCRYPT_HASH_OPERATION_TYPE = c_int;
pub const struct__BCRYPT_MULTI_HASH_OPERATION = extern struct {
iHash: ULONG,
hashOperation: BCRYPT_HASH_OPERATION_TYPE,
pbBuffer: PUCHAR,
cbBuffer: ULONG,
};
pub const BCRYPT_MULTI_HASH_OPERATION = struct__BCRYPT_MULTI_HASH_OPERATION;
pub const BCRYPT_OPERATION_TYPE_HASH: c_int = 1;
pub const BCRYPT_MULTI_OPERATION_TYPE = c_int;
pub const struct__BCRYPT_MULTI_OBJECT_LENGTH_STRUCT = extern struct {
cbPerObject: ULONG,
cbPerElement: ULONG,
};
pub const BCRYPT_MULTI_OBJECT_LENGTH_STRUCT = struct__BCRYPT_MULTI_OBJECT_LENGTH_STRUCT;
pub extern fn BCryptOpenAlgorithmProvider(phAlgorithm: ?&BCRYPT_ALG_HANDLE, pszAlgId: LPCWSTR, pszImplementation: LPCWSTR, dwFlags: ULONG) -> NTSTATUS;
pub const struct__BCRYPT_ALGORITHM_IDENTIFIER = extern struct {
pszName: LPWSTR,
dwClass: ULONG,
dwFlags: ULONG,
};
pub const BCRYPT_ALGORITHM_IDENTIFIER = struct__BCRYPT_ALGORITHM_IDENTIFIER;
pub extern fn BCryptEnumAlgorithms(dwAlgOperations: ULONG, pAlgCount: ?&ULONG, ppAlgList: ?&(?&BCRYPT_ALGORITHM_IDENTIFIER), dwFlags: ULONG) -> NTSTATUS;
pub const struct__BCRYPT_PROVIDER_NAME = extern struct {
pszProviderName: LPWSTR,
};
pub const BCRYPT_PROVIDER_NAME = struct__BCRYPT_PROVIDER_NAME;
pub extern fn BCryptEnumProviders(pszAlgId: LPCWSTR, pImplCount: ?&ULONG, ppImplList: ?&(?&BCRYPT_PROVIDER_NAME), dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptGetProperty(hObject: BCRYPT_HANDLE, pszProperty: LPCWSTR, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ?&ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptSetProperty(hObject: BCRYPT_HANDLE, pszProperty: LPCWSTR, pbInput: PUCHAR, cbInput: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptCloseAlgorithmProvider(hAlgorithm: BCRYPT_ALG_HANDLE, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptFreeBuffer(pvBuffer: PVOID);
pub extern fn BCryptGenerateSymmetricKey(hAlgorithm: BCRYPT_ALG_HANDLE, phKey: ?&BCRYPT_KEY_HANDLE, pbKeyObject: PUCHAR, cbKeyObject: ULONG, pbSecret: PUCHAR, cbSecret: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptGenerateKeyPair(hAlgorithm: BCRYPT_ALG_HANDLE, phKey: ?&BCRYPT_KEY_HANDLE, dwLength: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptEncrypt(hKey: BCRYPT_KEY_HANDLE, pbInput: PUCHAR, cbInput: ULONG, pPaddingInfo: ?&c_void, pbIV: PUCHAR, cbIV: ULONG, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ?&ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptDecrypt(hKey: BCRYPT_KEY_HANDLE, pbInput: PUCHAR, cbInput: ULONG, pPaddingInfo: ?&c_void, pbIV: PUCHAR, cbIV: ULONG, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ?&ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptExportKey(hKey: BCRYPT_KEY_HANDLE, hExportKey: BCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ?&ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptImportKey(hAlgorithm: BCRYPT_ALG_HANDLE, hImportKey: BCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, phKey: ?&BCRYPT_KEY_HANDLE, pbKeyObject: PUCHAR, cbKeyObject: ULONG, pbInput: PUCHAR, cbInput: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptImportKeyPair(hAlgorithm: BCRYPT_ALG_HANDLE, hImportKey: BCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, phKey: ?&BCRYPT_KEY_HANDLE, pbInput: PUCHAR, cbInput: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptDuplicateKey(hKey: BCRYPT_KEY_HANDLE, phNewKey: ?&BCRYPT_KEY_HANDLE, pbKeyObject: PUCHAR, cbKeyObject: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptFinalizeKeyPair(hKey: BCRYPT_KEY_HANDLE, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptDestroyKey(hKey: BCRYPT_KEY_HANDLE) -> NTSTATUS;
pub extern fn BCryptDestroySecret(hSecret: BCRYPT_SECRET_HANDLE) -> NTSTATUS;
pub extern fn BCryptSignHash(hKey: BCRYPT_KEY_HANDLE, pPaddingInfo: ?&c_void, pbInput: PUCHAR, cbInput: ULONG, pbOutput: PUCHAR, cbOutput: ULONG, pcbResult: ?&ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptVerifySignature(hKey: BCRYPT_KEY_HANDLE, pPaddingInfo: ?&c_void, pbHash: PUCHAR, cbHash: ULONG, pbSignature: PUCHAR, cbSignature: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptSecretAgreement(hPrivKey: BCRYPT_KEY_HANDLE, hPubKey: BCRYPT_KEY_HANDLE, phAgreedSecret: ?&BCRYPT_SECRET_HANDLE, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptDeriveKey(hSharedSecret: BCRYPT_SECRET_HANDLE, pwszKDF: LPCWSTR, pParameterList: ?&BCryptBufferDesc, pbDerivedKey: PUCHAR, cbDerivedKey: ULONG, pcbResult: ?&ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptKeyDerivation(hKey: BCRYPT_KEY_HANDLE, pParameterList: ?&BCryptBufferDesc, pbDerivedKey: PUCHAR, cbDerivedKey: ULONG, pcbResult: ?&ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptCreateHash(hAlgorithm: BCRYPT_ALG_HANDLE, phHash: ?&BCRYPT_HASH_HANDLE, pbHashObject: PUCHAR, cbHashObject: ULONG, pbSecret: PUCHAR, cbSecret: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptHashData(hHash: BCRYPT_HASH_HANDLE, pbInput: PUCHAR, cbInput: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptFinishHash(hHash: BCRYPT_HASH_HANDLE, pbOutput: PUCHAR, cbOutput: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptDuplicateHash(hHash: BCRYPT_HASH_HANDLE, phNewHash: ?&BCRYPT_HASH_HANDLE, pbHashObject: PUCHAR, cbHashObject: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptDestroyHash(hHash: BCRYPT_HASH_HANDLE) -> NTSTATUS;
pub extern fn BCryptGenRandom(hAlgorithm: BCRYPT_ALG_HANDLE, pbBuffer: PUCHAR, cbBuffer: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptDeriveKeyCapi(hHash: BCRYPT_HASH_HANDLE, hTargetAlg: BCRYPT_ALG_HANDLE, pbDerivedKey: PUCHAR, cbDerivedKey: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub extern fn BCryptDeriveKeyPBKDF2(hPrf: BCRYPT_ALG_HANDLE, pbPassword: PUCHAR, cbPassword: ULONG, pbSalt: PUCHAR, cbSalt: ULONG, cIterations: ULONGLONG, pbDerivedKey: PUCHAR, cbDerivedKey: ULONG, dwFlags: ULONG) -> NTSTATUS;
pub const struct__BCRYPT_INTERFACE_VERSION = extern struct {
MajorVersion: USHORT,
MinorVersion: USHORT,
};
pub const BCRYPT_INTERFACE_VERSION = struct__BCRYPT_INTERFACE_VERSION;
pub const PBCRYPT_INTERFACE_VERSION = ?&struct__BCRYPT_INTERFACE_VERSION;
pub const struct__CRYPT_INTERFACE_REG = extern struct {
dwInterface: ULONG,
dwFlags: ULONG,
cFunctions: ULONG,
rgpszFunctions: ?&PWSTR,
};
pub const CRYPT_INTERFACE_REG = struct__CRYPT_INTERFACE_REG;
pub const PCRYPT_INTERFACE_REG = ?&struct__CRYPT_INTERFACE_REG;
pub const struct__CRYPT_IMAGE_REG = extern struct {
pszImage: PWSTR,
cInterfaces: ULONG,
rgpInterfaces: ?&PCRYPT_INTERFACE_REG,
};
pub const CRYPT_IMAGE_REG = struct__CRYPT_IMAGE_REG;
pub const PCRYPT_IMAGE_REG = ?&struct__CRYPT_IMAGE_REG;
pub const struct__CRYPT_PROVIDER_REG = extern struct {
cAliases: ULONG,
rgpszAliases: ?&PWSTR,
pUM: PCRYPT_IMAGE_REG,
pKM: PCRYPT_IMAGE_REG,
};
pub const CRYPT_PROVIDER_REG = struct__CRYPT_PROVIDER_REG;
pub const PCRYPT_PROVIDER_REG = ?&struct__CRYPT_PROVIDER_REG;
pub const struct__CRYPT_PROVIDERS = extern struct {
cProviders: ULONG,
rgpszProviders: ?&PWSTR,
};
pub const CRYPT_PROVIDERS = struct__CRYPT_PROVIDERS;
pub const PCRYPT_PROVIDERS = ?&struct__CRYPT_PROVIDERS;
pub const struct__CRYPT_CONTEXT_CONFIG = extern struct {
dwFlags: ULONG,
dwReserved: ULONG,
};
pub const CRYPT_CONTEXT_CONFIG = struct__CRYPT_CONTEXT_CONFIG;
pub const PCRYPT_CONTEXT_CONFIG = ?&struct__CRYPT_CONTEXT_CONFIG;
pub const struct__CRYPT_CONTEXT_FUNCTION_CONFIG = extern struct {
dwFlags: ULONG,
dwReserved: ULONG,
};
pub const CRYPT_CONTEXT_FUNCTION_CONFIG = struct__CRYPT_CONTEXT_FUNCTION_CONFIG;
pub const PCRYPT_CONTEXT_FUNCTION_CONFIG = ?&struct__CRYPT_CONTEXT_FUNCTION_CONFIG;
pub const struct__CRYPT_CONTEXTS = extern struct {
cContexts: ULONG,
rgpszContexts: ?&PWSTR,
};
pub const CRYPT_CONTEXTS = struct__CRYPT_CONTEXTS;
pub const PCRYPT_CONTEXTS = ?&struct__CRYPT_CONTEXTS;
pub const struct__CRYPT_CONTEXT_FUNCTIONS = extern struct {
cFunctions: ULONG,
rgpszFunctions: ?&PWSTR,
};
pub const CRYPT_CONTEXT_FUNCTIONS = struct__CRYPT_CONTEXT_FUNCTIONS;
pub const PCRYPT_CONTEXT_FUNCTIONS = ?&struct__CRYPT_CONTEXT_FUNCTIONS;
pub const struct__CRYPT_CONTEXT_FUNCTION_PROVIDERS = extern struct {
cProviders: ULONG,
rgpszProviders: ?&PWSTR,
};
pub const CRYPT_CONTEXT_FUNCTION_PROVIDERS = struct__CRYPT_CONTEXT_FUNCTION_PROVIDERS;
pub const PCRYPT_CONTEXT_FUNCTION_PROVIDERS = ?&struct__CRYPT_CONTEXT_FUNCTION_PROVIDERS;
pub const struct__CRYPT_PROPERTY_REF = extern struct {
pszProperty: PWSTR,
cbValue: ULONG,
pbValue: PUCHAR,
};
pub const CRYPT_PROPERTY_REF = struct__CRYPT_PROPERTY_REF;
pub const PCRYPT_PROPERTY_REF = ?&struct__CRYPT_PROPERTY_REF;
pub const struct__CRYPT_IMAGE_REF = extern struct {
pszImage: PWSTR,
dwFlags: ULONG,
};
pub const CRYPT_IMAGE_REF = struct__CRYPT_IMAGE_REF;
pub const PCRYPT_IMAGE_REF = ?&struct__CRYPT_IMAGE_REF;
pub const struct__CRYPT_PROVIDER_REF = extern struct {
dwInterface: ULONG,
pszFunction: PWSTR,
pszProvider: PWSTR,
cProperties: ULONG,
rgpProperties: ?&PCRYPT_PROPERTY_REF,
pUM: PCRYPT_IMAGE_REF,
pKM: PCRYPT_IMAGE_REF,
};
pub const CRYPT_PROVIDER_REF = struct__CRYPT_PROVIDER_REF;
pub const PCRYPT_PROVIDER_REF = ?&struct__CRYPT_PROVIDER_REF;
pub const struct__CRYPT_PROVIDER_REFS = extern struct {
cProviders: ULONG,
rgpProviders: ?&PCRYPT_PROVIDER_REF,
};
pub const CRYPT_PROVIDER_REFS = struct__CRYPT_PROVIDER_REFS;
pub const PCRYPT_PROVIDER_REFS = ?&struct__CRYPT_PROVIDER_REFS;
pub extern fn BCryptQueryProviderRegistration(pszProvider: LPCWSTR, dwMode: ULONG, dwInterface: ULONG, pcbBuffer: ?&ULONG, ppBuffer: ?&PCRYPT_PROVIDER_REG) -> NTSTATUS;
pub extern fn BCryptEnumRegisteredProviders(pcbBuffer: ?&ULONG, ppBuffer: ?&PCRYPT_PROVIDERS) -> NTSTATUS;
pub extern fn BCryptCreateContext(dwTable: ULONG, pszContext: LPCWSTR, pConfig: PCRYPT_CONTEXT_CONFIG) -> NTSTATUS;
pub extern fn BCryptDeleteContext(dwTable: ULONG, pszContext: LPCWSTR) -> NTSTATUS;
pub extern fn BCryptEnumContexts(dwTable: ULONG, pcbBuffer: ?&ULONG, ppBuffer: ?&PCRYPT_CONTEXTS) -> NTSTATUS;
pub extern fn BCryptConfigureContext(dwTable: ULONG, pszContext: LPCWSTR, pConfig: PCRYPT_CONTEXT_CONFIG) -> NTSTATUS;
pub extern fn BCryptQueryContextConfiguration(dwTable: ULONG, pszContext: LPCWSTR, pcbBuffer: ?&ULONG, ppBuffer: ?&PCRYPT_CONTEXT_CONFIG) -> NTSTATUS;
pub extern fn BCryptAddContextFunction(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, dwPosition: ULONG) -> NTSTATUS;
pub extern fn BCryptRemoveContextFunction(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR) -> NTSTATUS;
pub extern fn BCryptEnumContextFunctions(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pcbBuffer: ?&ULONG, ppBuffer: ?&PCRYPT_CONTEXT_FUNCTIONS) -> NTSTATUS;
pub extern fn BCryptConfigureContextFunction(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pConfig: PCRYPT_CONTEXT_FUNCTION_CONFIG) -> NTSTATUS;
pub extern fn BCryptQueryContextFunctionConfiguration(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pcbBuffer: ?&ULONG, ppBuffer: ?&PCRYPT_CONTEXT_FUNCTION_CONFIG) -> NTSTATUS;
pub extern fn BCryptEnumContextFunctionProviders(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pcbBuffer: ?&ULONG, ppBuffer: ?&PCRYPT_CONTEXT_FUNCTION_PROVIDERS) -> NTSTATUS;
pub extern fn BCryptSetContextFunctionProperty(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pszProperty: LPCWSTR, cbValue: ULONG, pbValue: PUCHAR) -> NTSTATUS;
pub extern fn BCryptQueryContextFunctionProperty(dwTable: ULONG, pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pszProperty: LPCWSTR, pcbValue: ?&ULONG, ppbValue: ?&PUCHAR) -> NTSTATUS;
pub extern fn BCryptRegisterConfigChangeNotify(phEvent: ?&HANDLE) -> NTSTATUS;
pub extern fn BCryptUnregisterConfigChangeNotify(hEvent: HANDLE) -> NTSTATUS;
pub extern fn BCryptResolveProviders(pszContext: LPCWSTR, dwInterface: ULONG, pszFunction: LPCWSTR, pszProvider: LPCWSTR, dwMode: ULONG, dwFlags: ULONG, pcbBuffer: ?&ULONG, ppBuffer: ?&PCRYPT_PROVIDER_REFS) -> NTSTATUS;
pub extern fn BCryptGetFipsAlgorithmMode(pfEnabled: ?&BOOLEAN) -> NTSTATUS;
pub const SECURITY_STATUS = LONG;
pub const PFN_NCRYPT_ALLOC = ?extern fn(SIZE_T) -> LPVOID;
pub const PFN_NCRYPT_FREE = ?extern fn(LPVOID);
pub const struct_NCRYPT_ALLOC_PARA = extern struct {
cbSize: DWORD,
pfnAlloc: PFN_NCRYPT_ALLOC,
pfnFree: PFN_NCRYPT_FREE,
};
pub const NCRYPT_ALLOC_PARA = struct_NCRYPT_ALLOC_PARA;
pub const NCryptBuffer = BCryptBuffer;
pub const PNCryptBuffer = ?&BCryptBuffer;
pub const NCryptBufferDesc = BCryptBufferDesc;
pub const PNCryptBufferDesc = ?&BCryptBufferDesc;
pub const NCRYPT_HANDLE = ULONG_PTR;
pub const NCRYPT_PROV_HANDLE = ULONG_PTR;
pub const NCRYPT_KEY_HANDLE = ULONG_PTR;
pub const NCRYPT_HASH_HANDLE = ULONG_PTR;
pub const NCRYPT_SECRET_HANDLE = ULONG_PTR;
pub const struct__NCRYPT_CIPHER_PADDING_INFO = extern struct {
cbSize: ULONG,
dwFlags: DWORD,
pbIV: PUCHAR,
cbIV: ULONG,
pbOtherInfo: PUCHAR,
cbOtherInfo: ULONG,
};
pub const NCRYPT_CIPHER_PADDING_INFO = struct__NCRYPT_CIPHER_PADDING_INFO;
pub const PNCRYPT_CIPHER_PADDING_INFO = ?&struct__NCRYPT_CIPHER_PADDING_INFO;
pub const struct__NCRYPT_PLATFORM_ATTEST_PADDING_INFO = extern struct {
magic: ULONG,
pcrMask: ULONG,
};
pub const NCRYPT_PLATFORM_ATTEST_PADDING_INFO = struct__NCRYPT_PLATFORM_ATTEST_PADDING_INFO;
pub const struct__NCRYPT_KEY_ATTEST_PADDING_INFO = extern struct {
magic: ULONG,
pbKeyBlob: PUCHAR,
cbKeyBlob: ULONG,
pbKeyAuth: PUCHAR,
cbKeyAuth: ULONG,
};
pub const NCRYPT_KEY_ATTEST_PADDING_INFO = struct__NCRYPT_KEY_ATTEST_PADDING_INFO;
pub extern fn NCryptOpenStorageProvider(phProvider: ?&NCRYPT_PROV_HANDLE, pszProviderName: LPCWSTR, dwFlags: DWORD) -> SECURITY_STATUS;
pub const struct__NCryptAlgorithmName = extern struct {
pszName: LPWSTR,
dwClass: DWORD,
dwAlgOperations: DWORD,
dwFlags: DWORD,
};
pub const NCryptAlgorithmName = struct__NCryptAlgorithmName;
pub extern fn NCryptEnumAlgorithms(hProvider: NCRYPT_PROV_HANDLE, dwAlgOperations: DWORD, pdwAlgCount: ?&DWORD, ppAlgList: ?&(?&NCryptAlgorithmName), dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptIsAlgSupported(hProvider: NCRYPT_PROV_HANDLE, pszAlgId: LPCWSTR, dwFlags: DWORD) -> SECURITY_STATUS;
pub const struct_NCryptKeyName = extern struct {
pszName: LPWSTR,
pszAlgid: LPWSTR,
dwLegacyKeySpec: DWORD,
dwFlags: DWORD,
};
pub const NCryptKeyName = struct_NCryptKeyName;
pub extern fn NCryptEnumKeys(hProvider: NCRYPT_PROV_HANDLE, pszScope: LPCWSTR, ppKeyName: ?&(?&NCryptKeyName), ppEnumState: ?&PVOID, dwFlags: DWORD) -> SECURITY_STATUS;
pub const struct_NCryptProviderName = extern struct {
pszName: LPWSTR,
pszComment: LPWSTR,
};
pub const NCryptProviderName = struct_NCryptProviderName;
pub extern fn NCryptEnumStorageProviders(pdwProviderCount: ?&DWORD, ppProviderList: ?&(?&NCryptProviderName), dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptFreeBuffer(pvInput: PVOID) -> SECURITY_STATUS;
pub extern fn NCryptOpenKey(hProvider: NCRYPT_PROV_HANDLE, phKey: ?&NCRYPT_KEY_HANDLE, pszKeyName: LPCWSTR, dwLegacyKeySpec: DWORD, dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptCreatePersistedKey(hProvider: NCRYPT_PROV_HANDLE, phKey: ?&NCRYPT_KEY_HANDLE, pszAlgId: LPCWSTR, pszKeyName: LPCWSTR, dwLegacyKeySpec: DWORD, dwFlags: DWORD) -> SECURITY_STATUS;
pub const struct___NCRYPT_UI_POLICY = extern struct {
dwVersion: DWORD,
dwFlags: DWORD,
pszCreationTitle: LPCWSTR,
pszFriendlyName: LPCWSTR,
pszDescription: LPCWSTR,
};
pub const NCRYPT_UI_POLICY = struct___NCRYPT_UI_POLICY;
pub const struct___NCRYPT_SUPPORTED_LENGTHS = extern struct {
dwMinLength: DWORD,
dwMaxLength: DWORD,
dwIncrement: DWORD,
dwDefaultLength: DWORD,
};
pub const NCRYPT_SUPPORTED_LENGTHS = struct___NCRYPT_SUPPORTED_LENGTHS;
pub extern fn NCryptGetProperty(hObject: NCRYPT_HANDLE, pszProperty: LPCWSTR, pbOutput: PBYTE, cbOutput: DWORD, pcbResult: ?&DWORD, dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptSetProperty(hObject: NCRYPT_HANDLE, pszProperty: LPCWSTR, pbInput: PBYTE, cbInput: DWORD, dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptFinalizeKey(hKey: NCRYPT_KEY_HANDLE, dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptEncrypt(hKey: NCRYPT_KEY_HANDLE, pbInput: PBYTE, cbInput: DWORD, pPaddingInfo: ?&c_void, pbOutput: PBYTE, cbOutput: DWORD, pcbResult: ?&DWORD, dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptDecrypt(hKey: NCRYPT_KEY_HANDLE, pbInput: PBYTE, cbInput: DWORD, pPaddingInfo: ?&c_void, pbOutput: PBYTE, cbOutput: DWORD, pcbResult: ?&DWORD, dwFlags: DWORD) -> SECURITY_STATUS;
pub const struct__NCRYPT_KEY_BLOB_HEADER = extern struct {
cbSize: ULONG,
dwMagic: ULONG,
cbAlgName: ULONG,
cbKeyData: ULONG,
};
pub const NCRYPT_KEY_BLOB_HEADER = struct__NCRYPT_KEY_BLOB_HEADER;
pub const PNCRYPT_KEY_BLOB_HEADER = ?&struct__NCRYPT_KEY_BLOB_HEADER;
pub extern fn NCryptImportKey(hProvider: NCRYPT_PROV_HANDLE, hImportKey: NCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, pParameterList: ?&NCryptBufferDesc, phKey: ?&NCRYPT_KEY_HANDLE, pbData: PBYTE, cbData: DWORD, dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptExportKey(hKey: NCRYPT_KEY_HANDLE, hExportKey: NCRYPT_KEY_HANDLE, pszBlobType: LPCWSTR, pParameterList: ?&NCryptBufferDesc, pbOutput: PBYTE, cbOutput: DWORD, pcbResult: ?&DWORD, dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptSignHash(hKey: NCRYPT_KEY_HANDLE, pPaddingInfo: ?&c_void, pbHashValue: PBYTE, cbHashValue: DWORD, pbSignature: PBYTE, cbSignature: DWORD, pcbResult: ?&DWORD, dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptVerifySignature(hKey: NCRYPT_KEY_HANDLE, pPaddingInfo: ?&c_void, pbHashValue: PBYTE, cbHashValue: DWORD, pbSignature: PBYTE, cbSignature: DWORD, dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptDeleteKey(hKey: NCRYPT_KEY_HANDLE, dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptFreeObject(hObject: NCRYPT_HANDLE) -> SECURITY_STATUS;
pub extern fn NCryptIsKeyHandle(hKey: NCRYPT_KEY_HANDLE) -> BOOL;
pub extern fn NCryptTranslateHandle(phProvider: ?&NCRYPT_PROV_HANDLE, phKey: ?&NCRYPT_KEY_HANDLE, hLegacyProv: HCRYPTPROV, hLegacyKey: HCRYPTKEY, dwLegacyKeySpec: DWORD, dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptNotifyChangeKey(hProvider: NCRYPT_PROV_HANDLE, phEvent: ?&HANDLE, dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptSecretAgreement(hPrivKey: NCRYPT_KEY_HANDLE, hPubKey: NCRYPT_KEY_HANDLE, phAgreedSecret: ?&NCRYPT_SECRET_HANDLE, dwFlags: DWORD) -> SECURITY_STATUS;
pub extern fn NCryptDeriveKey(hSharedSecret: NCRYPT_SECRET_HANDLE, pwszKDF: LPCWSTR, pParameterList: ?&NCryptBufferDesc, pbDerivedKey: PBYTE, cbDerivedKey: DWORD, pcbResult: ?&DWORD, dwFlags: ULONG) -> SECURITY_STATUS;
pub extern fn NCryptKeyDerivation(hKey: NCRYPT_KEY_HANDLE, pParameterList: ?&NCryptBufferDesc, pbDerivedKey: PUCHAR, cbDerivedKey: DWORD, pcbResult: ?&DWORD, dwFlags: ULONG) -> SECURITY_STATUS;
pub const HCRYPTPROV_OR_NCRYPT_KEY_HANDLE = ULONG_PTR;
pub const HCRYPTPROV_LEGACY = ULONG_PTR;
pub const struct__CRYPT_BIT_BLOB = extern struct {
cbData: DWORD,
pbData: ?&BYTE,
cUnusedBits: DWORD,
};
pub const CRYPT_BIT_BLOB = struct__CRYPT_BIT_BLOB;
pub const PCRYPT_BIT_BLOB = ?&struct__CRYPT_BIT_BLOB;
pub const struct__CRYPT_ALGORITHM_IDENTIFIER = extern struct {
pszObjId: LPSTR,
Parameters: CRYPT_OBJID_BLOB,
};
pub const CRYPT_ALGORITHM_IDENTIFIER = struct__CRYPT_ALGORITHM_IDENTIFIER;
pub const PCRYPT_ALGORITHM_IDENTIFIER = ?&struct__CRYPT_ALGORITHM_IDENTIFIER;
pub const struct__CRYPT_OBJID_TABLE = extern struct {
dwAlgId: DWORD,
pszObjId: LPCSTR,
};
pub const CRYPT_OBJID_TABLE = struct__CRYPT_OBJID_TABLE;
pub const PCRYPT_OBJID_TABLE = ?&struct__CRYPT_OBJID_TABLE;
pub const struct__CRYPT_HASH_INFO = extern struct {
HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
Hash: CRYPT_HASH_BLOB,
};
pub const CRYPT_HASH_INFO = struct__CRYPT_HASH_INFO;
pub const PCRYPT_HASH_INFO = ?&struct__CRYPT_HASH_INFO;
pub const struct__CERT_EXTENSION = extern struct {
pszObjId: LPSTR,
fCritical: BOOL,
Value: CRYPT_OBJID_BLOB,
};
pub const CERT_EXTENSION = struct__CERT_EXTENSION;
pub const PCERT_EXTENSION = ?&struct__CERT_EXTENSION;
pub const PCCERT_EXTENSION = ?&const CERT_EXTENSION;
pub const struct__CRYPT_ATTRIBUTE_TYPE_VALUE = extern struct {
pszObjId: LPSTR,
Value: CRYPT_OBJID_BLOB,
};
pub const CRYPT_ATTRIBUTE_TYPE_VALUE = struct__CRYPT_ATTRIBUTE_TYPE_VALUE;
pub const PCRYPT_ATTRIBUTE_TYPE_VALUE = ?&struct__CRYPT_ATTRIBUTE_TYPE_VALUE;
pub const struct__CRYPT_ATTRIBUTE = extern struct {
pszObjId: LPSTR,
cValue: DWORD,
rgValue: PCRYPT_ATTR_BLOB,
};
pub const CRYPT_ATTRIBUTE = struct__CRYPT_ATTRIBUTE;
pub const PCRYPT_ATTRIBUTE = ?&struct__CRYPT_ATTRIBUTE;
pub const struct__CRYPT_ATTRIBUTES = extern struct {
cAttr: DWORD,
rgAttr: PCRYPT_ATTRIBUTE,
};
pub const CRYPT_ATTRIBUTES = struct__CRYPT_ATTRIBUTES;
pub const PCRYPT_ATTRIBUTES = ?&struct__CRYPT_ATTRIBUTES;
pub const struct__CERT_RDN_ATTR = extern struct {
pszObjId: LPSTR,
dwValueType: DWORD,
Value: CERT_RDN_VALUE_BLOB,
};
pub const CERT_RDN_ATTR = struct__CERT_RDN_ATTR;
pub const PCERT_RDN_ATTR = ?&struct__CERT_RDN_ATTR;
pub const struct__CERT_RDN = extern struct {
cRDNAttr: DWORD,
rgRDNAttr: PCERT_RDN_ATTR,
};
pub const CERT_RDN = struct__CERT_RDN;
pub const PCERT_RDN = ?&struct__CERT_RDN;
pub const struct__CERT_NAME_INFO = extern struct {
cRDN: DWORD,
rgRDN: PCERT_RDN,
};
pub const CERT_NAME_INFO = struct__CERT_NAME_INFO;
pub const PCERT_NAME_INFO = ?&struct__CERT_NAME_INFO;
pub const struct__CERT_NAME_VALUE = extern struct {
dwValueType: DWORD,
Value: CERT_RDN_VALUE_BLOB,
};
pub const CERT_NAME_VALUE = struct__CERT_NAME_VALUE;
pub const PCERT_NAME_VALUE = ?&struct__CERT_NAME_VALUE;
pub const struct__CERT_PUBLIC_KEY_INFO = extern struct {
Algorithm: CRYPT_ALGORITHM_IDENTIFIER,
PublicKey: CRYPT_BIT_BLOB,
};
pub const CERT_PUBLIC_KEY_INFO = struct__CERT_PUBLIC_KEY_INFO;
pub const PCERT_PUBLIC_KEY_INFO = ?&struct__CERT_PUBLIC_KEY_INFO;
pub const struct__CRYPT_ECC_PRIVATE_KEY_INFO = extern struct {
dwVersion: DWORD,
PrivateKey: CRYPT_DER_BLOB,
szCurveOid: LPSTR,
PublicKey: CRYPT_BIT_BLOB,
};
pub const CRYPT_ECC_PRIVATE_KEY_INFO = struct__CRYPT_ECC_PRIVATE_KEY_INFO;
pub const PCRYPT_ECC_PRIVATE_KEY_INFO = ?&struct__CRYPT_ECC_PRIVATE_KEY_INFO;
pub const struct__CRYPT_PRIVATE_KEY_INFO = extern struct {
Version: DWORD,
Algorithm: CRYPT_ALGORITHM_IDENTIFIER,
PrivateKey: CRYPT_DER_BLOB,
pAttributes: PCRYPT_ATTRIBUTES,
};
pub const CRYPT_PRIVATE_KEY_INFO = struct__CRYPT_PRIVATE_KEY_INFO;
pub const PCRYPT_PRIVATE_KEY_INFO = ?&struct__CRYPT_PRIVATE_KEY_INFO;
pub const struct__CRYPT_ENCRYPTED_PRIVATE_KEY_INFO = extern struct {
EncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
EncryptedPrivateKey: CRYPT_DATA_BLOB,
};
pub const CRYPT_ENCRYPTED_PRIVATE_KEY_INFO = struct__CRYPT_ENCRYPTED_PRIVATE_KEY_INFO;
pub const PCRYPT_ENCRYPTED_PRIVATE_KEY_INFO = ?&struct__CRYPT_ENCRYPTED_PRIVATE_KEY_INFO;
pub const PCRYPT_DECRYPT_PRIVATE_KEY_FUNC = ?extern fn(CRYPT_ALGORITHM_IDENTIFIER, CRYPT_DATA_BLOB, ?&BYTE, ?&DWORD, LPVOID) -> BOOL;
pub const PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC = ?extern fn(?&CRYPT_ALGORITHM_IDENTIFIER, ?&CRYPT_DATA_BLOB, ?&BYTE, ?&DWORD, LPVOID) -> BOOL;
pub const PCRYPT_RESOLVE_HCRYPTPROV_FUNC = ?extern fn(?&CRYPT_PRIVATE_KEY_INFO, ?&HCRYPTPROV, LPVOID) -> BOOL;
pub const struct__CRYPT_PKCS8_IMPORT_PARAMS = extern struct {
PrivateKey: CRYPT_DIGEST_BLOB,
pResolvehCryptProvFunc: PCRYPT_RESOLVE_HCRYPTPROV_FUNC,
pVoidResolveFunc: LPVOID,
pDecryptPrivateKeyFunc: PCRYPT_DECRYPT_PRIVATE_KEY_FUNC,
pVoidDecryptFunc: LPVOID,
};
pub const CRYPT_PKCS8_IMPORT_PARAMS = struct__CRYPT_PKCS8_IMPORT_PARAMS;
pub const PCRYPT_PKCS8_IMPORT_PARAMS = ?&struct__CRYPT_PKCS8_IMPORT_PARAMS;
pub const CRYPT_PRIVATE_KEY_BLOB_AND_PARAMS = struct__CRYPT_PKCS8_IMPORT_PARAMS;
pub const PCRYPT_PRIVATE_KEY_BLOB_AND_PARAMS = ?&struct__CRYPT_PKCS8_IMPORT_PARAMS;
pub const struct__CRYPT_PKCS8_EXPORT_PARAMS = extern struct {
hCryptProv: HCRYPTPROV,
dwKeySpec: DWORD,
pszPrivateKeyObjId: LPSTR,
pEncryptPrivateKeyFunc: PCRYPT_ENCRYPT_PRIVATE_KEY_FUNC,
pVoidEncryptFunc: LPVOID,
};
pub const CRYPT_PKCS8_EXPORT_PARAMS = struct__CRYPT_PKCS8_EXPORT_PARAMS;
pub const PCRYPT_PKCS8_EXPORT_PARAMS = ?&struct__CRYPT_PKCS8_EXPORT_PARAMS;
pub const struct__CERT_INFO = extern struct {
dwVersion: DWORD,
SerialNumber: CRYPT_INTEGER_BLOB,
SignatureAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
Issuer: CERT_NAME_BLOB,
NotBefore: FILETIME,
NotAfter: FILETIME,
Subject: CERT_NAME_BLOB,
SubjectPublicKeyInfo: CERT_PUBLIC_KEY_INFO,
IssuerUniqueId: CRYPT_BIT_BLOB,
SubjectUniqueId: CRYPT_BIT_BLOB,
cExtension: DWORD,
rgExtension: PCERT_EXTENSION,
};
pub const CERT_INFO = struct__CERT_INFO;
pub const PCERT_INFO = ?&struct__CERT_INFO;
pub const struct__CRL_ENTRY = extern struct {
SerialNumber: CRYPT_INTEGER_BLOB,
RevocationDate: FILETIME,
cExtension: DWORD,
rgExtension: PCERT_EXTENSION,
};
pub const CRL_ENTRY = struct__CRL_ENTRY;
pub const PCRL_ENTRY = ?&struct__CRL_ENTRY;
pub const struct__CRL_INFO = extern struct {
dwVersion: DWORD,
SignatureAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
Issuer: CERT_NAME_BLOB,
ThisUpdate: FILETIME,
NextUpdate: FILETIME,
cCRLEntry: DWORD,
rgCRLEntry: PCRL_ENTRY,
cExtension: DWORD,
rgExtension: PCERT_EXTENSION,
};
pub const CRL_INFO = struct__CRL_INFO;
pub const PCRL_INFO = ?&struct__CRL_INFO;
pub const struct__CERT_OR_CRL_BLOB = extern struct {
dwChoice: DWORD,
cbEncoded: DWORD,
pbEncoded: ?&BYTE,
};
pub const CERT_OR_CRL_BLOB = struct__CERT_OR_CRL_BLOB;
pub const PCERT_OR_CRL_BLOB = ?&struct__CERT_OR_CRL_BLOB;
pub const struct__CERT_OR_CRL_BUNDLE = extern struct {
cItem: DWORD,
rgItem: PCERT_OR_CRL_BLOB,
};
pub const CERT_OR_CRL_BUNDLE = struct__CERT_OR_CRL_BUNDLE;
pub const PCERT_OR_CRL_BUNDLE = ?&struct__CERT_OR_CRL_BUNDLE;
pub const struct__CERT_REQUEST_INFO = extern struct {
dwVersion: DWORD,
Subject: CERT_NAME_BLOB,
SubjectPublicKeyInfo: CERT_PUBLIC_KEY_INFO,
cAttribute: DWORD,
rgAttribute: PCRYPT_ATTRIBUTE,
};
pub const CERT_REQUEST_INFO = struct__CERT_REQUEST_INFO;
pub const PCERT_REQUEST_INFO = ?&struct__CERT_REQUEST_INFO;
pub const struct__CERT_KEYGEN_REQUEST_INFO = extern struct {
dwVersion: DWORD,
SubjectPublicKeyInfo: CERT_PUBLIC_KEY_INFO,
pwszChallengeString: LPWSTR,
};
pub const CERT_KEYGEN_REQUEST_INFO = struct__CERT_KEYGEN_REQUEST_INFO;
pub const PCERT_KEYGEN_REQUEST_INFO = ?&struct__CERT_KEYGEN_REQUEST_INFO;
pub const struct__CERT_SIGNED_CONTENT_INFO = extern struct {
ToBeSigned: CRYPT_DER_BLOB,
SignatureAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
Signature: CRYPT_BIT_BLOB,
};
pub const CERT_SIGNED_CONTENT_INFO = struct__CERT_SIGNED_CONTENT_INFO;
pub const PCERT_SIGNED_CONTENT_INFO = ?&struct__CERT_SIGNED_CONTENT_INFO;
pub const struct__CTL_USAGE = extern struct {
cUsageIdentifier: DWORD,
rgpszUsageIdentifier: ?&LPSTR,
};
pub const CTL_USAGE = struct__CTL_USAGE;
pub const PCTL_USAGE = ?&struct__CTL_USAGE;
pub const CERT_ENHKEY_USAGE = struct__CTL_USAGE;
pub const PCERT_ENHKEY_USAGE = ?&struct__CTL_USAGE;
pub const PCCTL_USAGE = ?&const CTL_USAGE;
pub const PCCERT_ENHKEY_USAGE = ?&const CERT_ENHKEY_USAGE;
pub const struct__CTL_ENTRY = extern struct {
SubjectIdentifier: CRYPT_DATA_BLOB,
cAttribute: DWORD,
rgAttribute: PCRYPT_ATTRIBUTE,
};
pub const CTL_ENTRY = struct__CTL_ENTRY;
pub const PCTL_ENTRY = ?&struct__CTL_ENTRY;
pub const struct__CTL_INFO = extern struct {
dwVersion: DWORD,
SubjectUsage: CTL_USAGE,
ListIdentifier: CRYPT_DATA_BLOB,
SequenceNumber: CRYPT_INTEGER_BLOB,
ThisUpdate: FILETIME,
NextUpdate: FILETIME,
SubjectAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
cCTLEntry: DWORD,
rgCTLEntry: PCTL_ENTRY,
cExtension: DWORD,
rgExtension: PCERT_EXTENSION,
};
pub const CTL_INFO = struct__CTL_INFO;
pub const PCTL_INFO = ?&struct__CTL_INFO;
pub const struct__CRYPT_TIME_STAMP_REQUEST_INFO = extern struct {
pszTimeStampAlgorithm: LPSTR,
pszContentType: LPSTR,
Content: CRYPT_OBJID_BLOB,
cAttribute: DWORD,
rgAttribute: PCRYPT_ATTRIBUTE,
};
pub const CRYPT_TIME_STAMP_REQUEST_INFO = struct__CRYPT_TIME_STAMP_REQUEST_INFO;
pub const PCRYPT_TIME_STAMP_REQUEST_INFO = ?&struct__CRYPT_TIME_STAMP_REQUEST_INFO;
pub const struct__CRYPT_ENROLLMENT_NAME_VALUE_PAIR = extern struct {
pwszName: LPWSTR,
pwszValue: LPWSTR,
};
pub const CRYPT_ENROLLMENT_NAME_VALUE_PAIR = struct__CRYPT_ENROLLMENT_NAME_VALUE_PAIR;
pub const PCRYPT_ENROLLMENT_NAME_VALUE_PAIR = ?&struct__CRYPT_ENROLLMENT_NAME_VALUE_PAIR;
pub const struct__CRYPT_CSP_PROVIDER = extern struct {
dwKeySpec: DWORD,
pwszProviderName: LPWSTR,
Signature: CRYPT_BIT_BLOB,
};
pub const CRYPT_CSP_PROVIDER = struct__CRYPT_CSP_PROVIDER;
pub const PCRYPT_CSP_PROVIDER = ?&struct__CRYPT_CSP_PROVIDER;
pub extern fn CryptFormatObject(dwCertEncodingType: DWORD, dwFormatType: DWORD, dwFormatStrType: DWORD, pFormatStruct: ?&c_void, lpszStructType: LPCSTR, pbEncoded: ?&const BYTE, cbEncoded: DWORD, pbFormat: ?&c_void, pcbFormat: ?&DWORD) -> BOOL;
pub const PFN_CRYPT_ALLOC = ?extern fn(usize) -> LPVOID;
pub const PFN_CRYPT_FREE = ?extern fn(LPVOID);
pub const struct__CRYPT_ENCODE_PARA = extern struct {
cbSize: DWORD,
pfnAlloc: PFN_CRYPT_ALLOC,
pfnFree: PFN_CRYPT_FREE,
};
pub const CRYPT_ENCODE_PARA = struct__CRYPT_ENCODE_PARA;
pub const PCRYPT_ENCODE_PARA = ?&struct__CRYPT_ENCODE_PARA;
pub extern fn CryptEncodeObjectEx(dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pvStructInfo: ?&const c_void, dwFlags: DWORD, pEncodePara: PCRYPT_ENCODE_PARA, pvEncoded: ?&c_void, pcbEncoded: ?&DWORD) -> BOOL;
pub extern fn CryptEncodeObject(dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pvStructInfo: ?&const c_void, pbEncoded: ?&BYTE, pcbEncoded: ?&DWORD) -> BOOL;
pub const struct__CRYPT_DECODE_PARA = extern struct {
cbSize: DWORD,
pfnAlloc: PFN_CRYPT_ALLOC,
pfnFree: PFN_CRYPT_FREE,
};
pub const CRYPT_DECODE_PARA = struct__CRYPT_DECODE_PARA;
pub const PCRYPT_DECODE_PARA = ?&struct__CRYPT_DECODE_PARA;
pub extern fn CryptDecodeObjectEx(dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pbEncoded: ?&const BYTE, cbEncoded: DWORD, dwFlags: DWORD, pDecodePara: PCRYPT_DECODE_PARA, pvStructInfo: ?&c_void, pcbStructInfo: ?&DWORD) -> BOOL;
pub extern fn CryptDecodeObject(dwCertEncodingType: DWORD, lpszStructType: LPCSTR, pbEncoded: ?&const BYTE, cbEncoded: DWORD, dwFlags: DWORD, pvStructInfo: ?&c_void, pcbStructInfo: ?&DWORD) -> BOOL;
pub const struct__CERT_EXTENSIONS = extern struct {
cExtension: DWORD,
rgExtension: PCERT_EXTENSION,
};
pub const CERT_EXTENSIONS = struct__CERT_EXTENSIONS;
pub const PCERT_EXTENSIONS = ?&struct__CERT_EXTENSIONS;
pub const struct__CERT_AUTHORITY_KEY_ID_INFO = extern struct {
KeyId: CRYPT_DATA_BLOB,
CertIssuer: CERT_NAME_BLOB,
CertSerialNumber: CRYPT_INTEGER_BLOB,
};
pub const CERT_AUTHORITY_KEY_ID_INFO = struct__CERT_AUTHORITY_KEY_ID_INFO;
pub const PCERT_AUTHORITY_KEY_ID_INFO = ?&struct__CERT_AUTHORITY_KEY_ID_INFO;
pub const struct__CERT_PRIVATE_KEY_VALIDITY = extern struct {
NotBefore: FILETIME,
NotAfter: FILETIME,
};
pub const CERT_PRIVATE_KEY_VALIDITY = struct__CERT_PRIVATE_KEY_VALIDITY;
pub const PCERT_PRIVATE_KEY_VALIDITY = ?&struct__CERT_PRIVATE_KEY_VALIDITY;
pub const struct__CERT_KEY_ATTRIBUTES_INFO = extern struct {
KeyId: CRYPT_DATA_BLOB,
IntendedKeyUsage: CRYPT_BIT_BLOB,
pPrivateKeyUsagePeriod: PCERT_PRIVATE_KEY_VALIDITY,
};
pub const CERT_KEY_ATTRIBUTES_INFO = struct__CERT_KEY_ATTRIBUTES_INFO;
pub const PCERT_KEY_ATTRIBUTES_INFO = ?&struct__CERT_KEY_ATTRIBUTES_INFO;
pub const struct__CERT_POLICY_ID = extern struct {
cCertPolicyElementId: DWORD,
rgpszCertPolicyElementId: ?&LPSTR,
};
pub const CERT_POLICY_ID = struct__CERT_POLICY_ID;
pub const PCERT_POLICY_ID = ?&struct__CERT_POLICY_ID;
pub const struct__CERT_KEY_USAGE_RESTRICTION_INFO = extern struct {
cCertPolicyId: DWORD,
rgCertPolicyId: PCERT_POLICY_ID,
RestrictedKeyUsage: CRYPT_BIT_BLOB,
};
pub const CERT_KEY_USAGE_RESTRICTION_INFO = struct__CERT_KEY_USAGE_RESTRICTION_INFO;
pub const PCERT_KEY_USAGE_RESTRICTION_INFO = ?&struct__CERT_KEY_USAGE_RESTRICTION_INFO;
pub const struct__CERT_OTHER_NAME = extern struct {
pszObjId: LPSTR,
Value: CRYPT_OBJID_BLOB,
};
pub const CERT_OTHER_NAME = struct__CERT_OTHER_NAME;
pub const PCERT_OTHER_NAME = ?&struct__CERT_OTHER_NAME;
pub const struct__CERT_ALT_NAME_ENTRY = @OpaqueType();
pub const CERT_ALT_NAME_ENTRY = struct__CERT_ALT_NAME_ENTRY;
pub const PCERT_ALT_NAME_ENTRY = ?&struct__CERT_ALT_NAME_ENTRY;
pub const struct__CERT_ALT_NAME_INFO = extern struct {
cAltEntry: DWORD,
rgAltEntry: PCERT_ALT_NAME_ENTRY,
};
pub const CERT_ALT_NAME_INFO = struct__CERT_ALT_NAME_INFO;
pub const PCERT_ALT_NAME_INFO = ?&struct__CERT_ALT_NAME_INFO;
pub const struct__CERT_BASIC_CONSTRAINTS_INFO = extern struct {
SubjectType: CRYPT_BIT_BLOB,
fPathLenConstraint: BOOL,
dwPathLenConstraint: DWORD,
cSubtreesConstraint: DWORD,
rgSubtreesConstraint: ?&CERT_NAME_BLOB,
};
pub const CERT_BASIC_CONSTRAINTS_INFO = struct__CERT_BASIC_CONSTRAINTS_INFO;
pub const PCERT_BASIC_CONSTRAINTS_INFO = ?&struct__CERT_BASIC_CONSTRAINTS_INFO;
pub const struct__CERT_BASIC_CONSTRAINTS2_INFO = extern struct {
fCA: BOOL,
fPathLenConstraint: BOOL,
dwPathLenConstraint: DWORD,
};
pub const CERT_BASIC_CONSTRAINTS2_INFO = struct__CERT_BASIC_CONSTRAINTS2_INFO;
pub const PCERT_BASIC_CONSTRAINTS2_INFO = ?&struct__CERT_BASIC_CONSTRAINTS2_INFO;
pub const struct__CERT_POLICY_QUALIFIER_INFO = extern struct {
pszPolicyQualifierId: LPSTR,
Qualifier: CRYPT_OBJID_BLOB,
};
pub const CERT_POLICY_QUALIFIER_INFO = struct__CERT_POLICY_QUALIFIER_INFO;
pub const PCERT_POLICY_QUALIFIER_INFO = ?&struct__CERT_POLICY_QUALIFIER_INFO;
pub const struct__CERT_POLICY_INFO = extern struct {
pszPolicyIdentifier: LPSTR,
cPolicyQualifier: DWORD,
rgPolicyQualifier: ?&CERT_POLICY_QUALIFIER_INFO,
};
pub const CERT_POLICY_INFO = struct__CERT_POLICY_INFO;
pub const PCERT_POLICY_INFO = ?&struct__CERT_POLICY_INFO;
pub const struct__CERT_POLICIES_INFO = extern struct {
cPolicyInfo: DWORD,
rgPolicyInfo: ?&CERT_POLICY_INFO,
};
pub const CERT_POLICIES_INFO = struct__CERT_POLICIES_INFO;
pub const PCERT_POLICIES_INFO = ?&struct__CERT_POLICIES_INFO;
pub const struct__CERT_POLICY_QUALIFIER_NOTICE_REFERENCE = extern struct {
pszOrganization: LPSTR,
cNoticeNumbers: DWORD,
rgNoticeNumbers: ?&c_int,
};
pub const CERT_POLICY_QUALIFIER_NOTICE_REFERENCE = struct__CERT_POLICY_QUALIFIER_NOTICE_REFERENCE;
pub const PCERT_POLICY_QUALIFIER_NOTICE_REFERENCE = ?&struct__CERT_POLICY_QUALIFIER_NOTICE_REFERENCE;
pub const struct__CERT_POLICY_QUALIFIER_USER_NOTICE = extern struct {
pNoticeReference: ?&CERT_POLICY_QUALIFIER_NOTICE_REFERENCE,
pszDisplayText: LPWSTR,
};
pub const CERT_POLICY_QUALIFIER_USER_NOTICE = struct__CERT_POLICY_QUALIFIER_USER_NOTICE;
pub const PCERT_POLICY_QUALIFIER_USER_NOTICE = ?&struct__CERT_POLICY_QUALIFIER_USER_NOTICE;
pub const struct__CPS_URLS = extern struct {
pszURL: LPWSTR,
pAlgorithm: ?&CRYPT_ALGORITHM_IDENTIFIER,
pDigest: ?&CRYPT_DATA_BLOB,
};
pub const CPS_URLS = struct__CPS_URLS;
pub const PCPS_URLS = ?&struct__CPS_URLS;
pub const struct__CERT_POLICY95_QUALIFIER1 = extern struct {
pszPracticesReference: LPWSTR,
pszNoticeIdentifier: LPSTR,
pszNSINoticeIdentifier: LPSTR,
cCPSURLs: DWORD,
rgCPSURLs: ?&CPS_URLS,
};
pub const CERT_POLICY95_QUALIFIER1 = struct__CERT_POLICY95_QUALIFIER1;
pub const PCERT_POLICY95_QUALIFIER1 = ?&struct__CERT_POLICY95_QUALIFIER1;
pub const struct__CERT_POLICY_MAPPING = extern struct {
pszIssuerDomainPolicy: LPSTR,
pszSubjectDomainPolicy: LPSTR,
};
pub const CERT_POLICY_MAPPING = struct__CERT_POLICY_MAPPING;
pub const PCERT_POLICY_MAPPING = ?&struct__CERT_POLICY_MAPPING;
pub const struct__CERT_POLICY_MAPPINGS_INFO = extern struct {
cPolicyMapping: DWORD,
rgPolicyMapping: PCERT_POLICY_MAPPING,
};
pub const CERT_POLICY_MAPPINGS_INFO = struct__CERT_POLICY_MAPPINGS_INFO;
pub const PCERT_POLICY_MAPPINGS_INFO = ?&struct__CERT_POLICY_MAPPINGS_INFO;
pub const struct__CERT_POLICY_CONSTRAINTS_INFO = extern struct {
fRequireExplicitPolicy: BOOL,
dwRequireExplicitPolicySkipCerts: DWORD,
fInhibitPolicyMapping: BOOL,
dwInhibitPolicyMappingSkipCerts: DWORD,
};
pub const CERT_POLICY_CONSTRAINTS_INFO = struct__CERT_POLICY_CONSTRAINTS_INFO;
pub const PCERT_POLICY_CONSTRAINTS_INFO = ?&struct__CERT_POLICY_CONSTRAINTS_INFO;
pub const struct__CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY = extern struct {
pszObjId: LPSTR,
cValue: DWORD,
rgValue: PCRYPT_DER_BLOB,
};
pub const CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY = struct__CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY;
pub const PCRYPT_CONTENT_INFO_SEQUENCE_OF_ANY = ?&struct__CRYPT_CONTENT_INFO_SEQUENCE_OF_ANY;
pub const struct__CRYPT_CONTENT_INFO = extern struct {
pszObjId: LPSTR,
Content: CRYPT_DER_BLOB,
};
pub const CRYPT_CONTENT_INFO = struct__CRYPT_CONTENT_INFO;
pub const PCRYPT_CONTENT_INFO = ?&struct__CRYPT_CONTENT_INFO;
pub const struct__CRYPT_SEQUENCE_OF_ANY = extern struct {
cValue: DWORD,
rgValue: PCRYPT_DER_BLOB,
};
pub const CRYPT_SEQUENCE_OF_ANY = struct__CRYPT_SEQUENCE_OF_ANY;
pub const PCRYPT_SEQUENCE_OF_ANY = ?&struct__CRYPT_SEQUENCE_OF_ANY;
pub const struct__CERT_AUTHORITY_KEY_ID2_INFO = extern struct {
KeyId: CRYPT_DATA_BLOB,
AuthorityCertIssuer: CERT_ALT_NAME_INFO,
AuthorityCertSerialNumber: CRYPT_INTEGER_BLOB,
};
pub const CERT_AUTHORITY_KEY_ID2_INFO = struct__CERT_AUTHORITY_KEY_ID2_INFO;
pub const PCERT_AUTHORITY_KEY_ID2_INFO = ?&struct__CERT_AUTHORITY_KEY_ID2_INFO;
pub const struct__CERT_ACCESS_DESCRIPTION = extern struct {
pszAccessMethod: LPSTR,
AccessLocation: CERT_ALT_NAME_ENTRY,
};
pub const CERT_ACCESS_DESCRIPTION = struct__CERT_ACCESS_DESCRIPTION;
pub const PCERT_ACCESS_DESCRIPTION = ?&struct__CERT_ACCESS_DESCRIPTION;
pub const struct__CERT_AUTHORITY_INFO_ACCESS = extern struct {
cAccDescr: DWORD,
rgAccDescr: PCERT_ACCESS_DESCRIPTION,
};
pub const CERT_AUTHORITY_INFO_ACCESS = struct__CERT_AUTHORITY_INFO_ACCESS;
pub const PCERT_AUTHORITY_INFO_ACCESS = ?&struct__CERT_AUTHORITY_INFO_ACCESS;
pub const CERT_SUBJECT_INFO_ACCESS = struct__CERT_AUTHORITY_INFO_ACCESS;
pub const PCERT_SUBJECT_INFO_ACCESS = ?&struct__CERT_AUTHORITY_INFO_ACCESS;
pub const struct__CRL_DIST_POINT_NAME = @OpaqueType();
pub const CRL_DIST_POINT_NAME = struct__CRL_DIST_POINT_NAME;
pub const PCRL_DIST_POINT_NAME = ?&struct__CRL_DIST_POINT_NAME;
pub const struct__CRL_DIST_POINT = extern struct {
DistPointName: CRL_DIST_POINT_NAME,
ReasonFlags: CRYPT_BIT_BLOB,
CRLIssuer: CERT_ALT_NAME_INFO,
};
pub const CRL_DIST_POINT = struct__CRL_DIST_POINT;
pub const PCRL_DIST_POINT = ?&struct__CRL_DIST_POINT;
pub const struct__CRL_DIST_POINTS_INFO = extern struct {
cDistPoint: DWORD,
rgDistPoint: PCRL_DIST_POINT,
};
pub const CRL_DIST_POINTS_INFO = struct__CRL_DIST_POINTS_INFO;
pub const PCRL_DIST_POINTS_INFO = ?&struct__CRL_DIST_POINTS_INFO;
pub const struct__CROSS_CERT_DIST_POINTS_INFO = extern struct {
dwSyncDeltaTime: DWORD,
cDistPoint: DWORD,
rgDistPoint: PCERT_ALT_NAME_INFO,
};
pub const CROSS_CERT_DIST_POINTS_INFO = struct__CROSS_CERT_DIST_POINTS_INFO;
pub const PCROSS_CERT_DIST_POINTS_INFO = ?&struct__CROSS_CERT_DIST_POINTS_INFO;
pub const struct__CERT_PAIR = extern struct {
Forward: CERT_BLOB,
Reverse: CERT_BLOB,
};
pub const CERT_PAIR = struct__CERT_PAIR;
pub const PCERT_PAIR = ?&struct__CERT_PAIR;
pub const struct__CRL_ISSUING_DIST_POINT = extern struct {
DistPointName: CRL_DIST_POINT_NAME,
fOnlyContainsUserCerts: BOOL,
fOnlyContainsCACerts: BOOL,
OnlySomeReasonFlags: CRYPT_BIT_BLOB,
fIndirectCRL: BOOL,
};
pub const CRL_ISSUING_DIST_POINT = struct__CRL_ISSUING_DIST_POINT;
pub const PCRL_ISSUING_DIST_POINT = ?&struct__CRL_ISSUING_DIST_POINT;
pub const struct__CERT_GENERAL_SUBTREE = extern struct {
Base: CERT_ALT_NAME_ENTRY,
dwMinimum: DWORD,
fMaximum: BOOL,
dwMaximum: DWORD,
};
pub const CERT_GENERAL_SUBTREE = struct__CERT_GENERAL_SUBTREE;
pub const PCERT_GENERAL_SUBTREE = ?&struct__CERT_GENERAL_SUBTREE;
pub const struct__CERT_NAME_CONSTRAINTS_INFO = extern struct {
cPermittedSubtree: DWORD,
rgPermittedSubtree: PCERT_GENERAL_SUBTREE,
cExcludedSubtree: DWORD,
rgExcludedSubtree: PCERT_GENERAL_SUBTREE,
};
pub const CERT_NAME_CONSTRAINTS_INFO = struct__CERT_NAME_CONSTRAINTS_INFO;
pub const PCERT_NAME_CONSTRAINTS_INFO = ?&struct__CERT_NAME_CONSTRAINTS_INFO;
pub const struct__CERT_DSS_PARAMETERS = extern struct {
p: CRYPT_UINT_BLOB,
q: CRYPT_UINT_BLOB,
g: CRYPT_UINT_BLOB,
};
pub const CERT_DSS_PARAMETERS = struct__CERT_DSS_PARAMETERS;
pub const PCERT_DSS_PARAMETERS = ?&struct__CERT_DSS_PARAMETERS;
pub const struct__CERT_DH_PARAMETERS = extern struct {
p: CRYPT_UINT_BLOB,
g: CRYPT_UINT_BLOB,
};
pub const CERT_DH_PARAMETERS = struct__CERT_DH_PARAMETERS;
pub const PCERT_DH_PARAMETERS = ?&struct__CERT_DH_PARAMETERS;
pub const struct__CERT_ECC_SIGNATURE = extern struct {
r: CRYPT_UINT_BLOB,
s: CRYPT_UINT_BLOB,
};
pub const CERT_ECC_SIGNATURE = struct__CERT_ECC_SIGNATURE;
pub const PCERT_ECC_SIGNATURE = ?&struct__CERT_ECC_SIGNATURE;
pub const struct__CERT_X942_DH_VALIDATION_PARAMS = extern struct {
seed: CRYPT_BIT_BLOB,
pgenCounter: DWORD,
};
pub const CERT_X942_DH_VALIDATION_PARAMS = struct__CERT_X942_DH_VALIDATION_PARAMS;
pub const PCERT_X942_DH_VALIDATION_PARAMS = ?&struct__CERT_X942_DH_VALIDATION_PARAMS;
pub const struct__CERT_X942_DH_PARAMETERS = extern struct {
p: CRYPT_UINT_BLOB,
g: CRYPT_UINT_BLOB,
q: CRYPT_UINT_BLOB,
j: CRYPT_UINT_BLOB,
pValidationParams: PCERT_X942_DH_VALIDATION_PARAMS,
};
pub const CERT_X942_DH_PARAMETERS = struct__CERT_X942_DH_PARAMETERS;
pub const PCERT_X942_DH_PARAMETERS = ?&struct__CERT_X942_DH_PARAMETERS;
pub const struct__CRYPT_X942_OTHER_INFO = extern struct {
pszContentEncryptionObjId: LPSTR,
rgbCounter: [4]BYTE,
rgbKeyLength: [4]BYTE,
PubInfo: CRYPT_DATA_BLOB,
};
pub const CRYPT_X942_OTHER_INFO = struct__CRYPT_X942_OTHER_INFO;
pub const PCRYPT_X942_OTHER_INFO = ?&struct__CRYPT_X942_OTHER_INFO;
pub const struct__CRYPT_ECC_CMS_SHARED_INFO = extern struct {
Algorithm: CRYPT_ALGORITHM_IDENTIFIER,
EntityUInfo: CRYPT_DATA_BLOB,
rgbSuppPubInfo: [4]BYTE,
};
pub const CRYPT_ECC_CMS_SHARED_INFO = struct__CRYPT_ECC_CMS_SHARED_INFO;
pub const PCRYPT_ECC_CMS_SHARED_INFO = ?&struct__CRYPT_ECC_CMS_SHARED_INFO;
pub const struct__CRYPT_RC2_CBC_PARAMETERS = extern struct {
dwVersion: DWORD,
fIV: BOOL,
rgbIV: [8]BYTE,
};
pub const CRYPT_RC2_CBC_PARAMETERS = struct__CRYPT_RC2_CBC_PARAMETERS;
pub const PCRYPT_RC2_CBC_PARAMETERS = ?&struct__CRYPT_RC2_CBC_PARAMETERS;
pub const struct__CRYPT_SMIME_CAPABILITY = extern struct {
pszObjId: LPSTR,
Parameters: CRYPT_OBJID_BLOB,
};
pub const CRYPT_SMIME_CAPABILITY = struct__CRYPT_SMIME_CAPABILITY;
pub const PCRYPT_SMIME_CAPABILITY = ?&struct__CRYPT_SMIME_CAPABILITY;
pub const struct__CRYPT_SMIME_CAPABILITIES = extern struct {
cCapability: DWORD,
rgCapability: PCRYPT_SMIME_CAPABILITY,
};
pub const CRYPT_SMIME_CAPABILITIES = struct__CRYPT_SMIME_CAPABILITIES;
pub const PCRYPT_SMIME_CAPABILITIES = ?&struct__CRYPT_SMIME_CAPABILITIES;
pub const struct__CERT_QC_STATEMENT = extern struct {
pszStatementId: LPSTR,
StatementInfo: CRYPT_OBJID_BLOB,
};
pub const CERT_QC_STATEMENT = struct__CERT_QC_STATEMENT;
pub const PCERT_QC_STATEMENT = ?&struct__CERT_QC_STATEMENT;
pub const struct__CERT_QC_STATEMENTS_EXT_INFO = extern struct {
cStatement: DWORD,
rgStatement: PCERT_QC_STATEMENT,
};
pub const CERT_QC_STATEMENTS_EXT_INFO = struct__CERT_QC_STATEMENTS_EXT_INFO;
pub const PCERT_QC_STATEMENTS_EXT_INFO = ?&struct__CERT_QC_STATEMENTS_EXT_INFO;
pub const struct__CRYPT_MASK_GEN_ALGORITHM = extern struct {
pszObjId: LPSTR,
HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
};
pub const CRYPT_MASK_GEN_ALGORITHM = struct__CRYPT_MASK_GEN_ALGORITHM;
pub const PCRYPT_MASK_GEN_ALGORITHM = ?&struct__CRYPT_MASK_GEN_ALGORITHM;
pub const struct__CRYPT_RSA_SSA_PSS_PARAMETERS = extern struct {
HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
MaskGenAlgorithm: CRYPT_MASK_GEN_ALGORITHM,
dwSaltLength: DWORD,
dwTrailerField: DWORD,
};
pub const CRYPT_RSA_SSA_PSS_PARAMETERS = struct__CRYPT_RSA_SSA_PSS_PARAMETERS;
pub const PCRYPT_RSA_SSA_PSS_PARAMETERS = ?&struct__CRYPT_RSA_SSA_PSS_PARAMETERS;
pub const struct__CRYPT_PSOURCE_ALGORITHM = extern struct {
pszObjId: LPSTR,
EncodingParameters: CRYPT_DATA_BLOB,
};
pub const CRYPT_PSOURCE_ALGORITHM = struct__CRYPT_PSOURCE_ALGORITHM;
pub const PCRYPT_PSOURCE_ALGORITHM = ?&struct__CRYPT_PSOURCE_ALGORITHM;
pub const struct__CRYPT_RSAES_OAEP_PARAMETERS = extern struct {
HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
MaskGenAlgorithm: CRYPT_MASK_GEN_ALGORITHM,
PSourceAlgorithm: CRYPT_PSOURCE_ALGORITHM,
};
pub const CRYPT_RSAES_OAEP_PARAMETERS = struct__CRYPT_RSAES_OAEP_PARAMETERS;
pub const PCRYPT_RSAES_OAEP_PARAMETERS = ?&struct__CRYPT_RSAES_OAEP_PARAMETERS;
pub const struct__CMC_TAGGED_ATTRIBUTE = extern struct {
dwBodyPartID: DWORD,
Attribute: CRYPT_ATTRIBUTE,
};
pub const CMC_TAGGED_ATTRIBUTE = struct__CMC_TAGGED_ATTRIBUTE;
pub const PCMC_TAGGED_ATTRIBUTE = ?&struct__CMC_TAGGED_ATTRIBUTE;
pub const struct__CMC_TAGGED_CERT_REQUEST = extern struct {
dwBodyPartID: DWORD,
SignedCertRequest: CRYPT_DER_BLOB,
};
pub const CMC_TAGGED_CERT_REQUEST = struct__CMC_TAGGED_CERT_REQUEST;
pub const PCMC_TAGGED_CERT_REQUEST = ?&struct__CMC_TAGGED_CERT_REQUEST;
pub const struct__CMC_TAGGED_REQUEST = @OpaqueType();
pub const CMC_TAGGED_REQUEST = struct__CMC_TAGGED_REQUEST;
pub const PCMC_TAGGED_REQUEST = ?&struct__CMC_TAGGED_REQUEST;
pub const struct__CMC_TAGGED_CONTENT_INFO = extern struct {
dwBodyPartID: DWORD,
EncodedContentInfo: CRYPT_DER_BLOB,
};
pub const CMC_TAGGED_CONTENT_INFO = struct__CMC_TAGGED_CONTENT_INFO;
pub const PCMC_TAGGED_CONTENT_INFO = ?&struct__CMC_TAGGED_CONTENT_INFO;
pub const struct__CMC_TAGGED_OTHER_MSG = extern struct {
dwBodyPartID: DWORD,
pszObjId: LPSTR,
Value: CRYPT_OBJID_BLOB,
};
pub const CMC_TAGGED_OTHER_MSG = struct__CMC_TAGGED_OTHER_MSG;
pub const PCMC_TAGGED_OTHER_MSG = ?&struct__CMC_TAGGED_OTHER_MSG;
pub const struct__CMC_DATA_INFO = extern struct {
cTaggedAttribute: DWORD,
rgTaggedAttribute: PCMC_TAGGED_ATTRIBUTE,
cTaggedRequest: DWORD,
rgTaggedRequest: PCMC_TAGGED_REQUEST,
cTaggedContentInfo: DWORD,
rgTaggedContentInfo: PCMC_TAGGED_CONTENT_INFO,
cTaggedOtherMsg: DWORD,
rgTaggedOtherMsg: PCMC_TAGGED_OTHER_MSG,
};
pub const CMC_DATA_INFO = struct__CMC_DATA_INFO;
pub const PCMC_DATA_INFO = ?&struct__CMC_DATA_INFO;
pub const struct__CMC_RESPONSE_INFO = extern struct {
cTaggedAttribute: DWORD,
rgTaggedAttribute: PCMC_TAGGED_ATTRIBUTE,
cTaggedContentInfo: DWORD,
rgTaggedContentInfo: PCMC_TAGGED_CONTENT_INFO,
cTaggedOtherMsg: DWORD,
rgTaggedOtherMsg: PCMC_TAGGED_OTHER_MSG,
};
pub const CMC_RESPONSE_INFO = struct__CMC_RESPONSE_INFO;
pub const PCMC_RESPONSE_INFO = ?&struct__CMC_RESPONSE_INFO;
pub const struct__CMC_PEND_INFO = extern struct {
PendToken: CRYPT_DATA_BLOB,
PendTime: FILETIME,
};
pub const CMC_PEND_INFO = struct__CMC_PEND_INFO;
pub const PCMC_PEND_INFO = ?&struct__CMC_PEND_INFO;
pub const struct__CMC_STATUS_INFO = @OpaqueType();
pub const CMC_STATUS_INFO = struct__CMC_STATUS_INFO;
pub const PCMC_STATUS_INFO = ?&struct__CMC_STATUS_INFO;
pub const struct__CMC_ADD_EXTENSIONS_INFO = extern struct {
dwCmcDataReference: DWORD,
cCertReference: DWORD,
rgdwCertReference: ?&DWORD,
cExtension: DWORD,
rgExtension: PCERT_EXTENSION,
};
pub const CMC_ADD_EXTENSIONS_INFO = struct__CMC_ADD_EXTENSIONS_INFO;
pub const PCMC_ADD_EXTENSIONS_INFO = ?&struct__CMC_ADD_EXTENSIONS_INFO;
pub const struct__CMC_ADD_ATTRIBUTES_INFO = extern struct {
dwCmcDataReference: DWORD,
cCertReference: DWORD,
rgdwCertReference: ?&DWORD,
cAttribute: DWORD,
rgAttribute: PCRYPT_ATTRIBUTE,
};
pub const CMC_ADD_ATTRIBUTES_INFO = struct__CMC_ADD_ATTRIBUTES_INFO;
pub const PCMC_ADD_ATTRIBUTES_INFO = ?&struct__CMC_ADD_ATTRIBUTES_INFO;
pub const struct__CERT_TEMPLATE_EXT = extern struct {
pszObjId: LPSTR,
dwMajorVersion: DWORD,
fMinorVersion: BOOL,
dwMinorVersion: DWORD,
};
pub const CERT_TEMPLATE_EXT = struct__CERT_TEMPLATE_EXT;
pub const PCERT_TEMPLATE_EXT = ?&struct__CERT_TEMPLATE_EXT;
pub const struct__CERT_HASHED_URL = extern struct {
HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
Hash: CRYPT_HASH_BLOB,
pwszUrl: LPWSTR,
};
pub const CERT_HASHED_URL = struct__CERT_HASHED_URL;
pub const PCERT_HASHED_URL = ?&struct__CERT_HASHED_URL;
pub const struct__CERT_LOGOTYPE_DETAILS = extern struct {
pwszMimeType: LPWSTR,
cHashedUrl: DWORD,
rgHashedUrl: PCERT_HASHED_URL,
};
pub const CERT_LOGOTYPE_DETAILS = struct__CERT_LOGOTYPE_DETAILS;
pub const PCERT_LOGOTYPE_DETAILS = ?&struct__CERT_LOGOTYPE_DETAILS;
pub const struct__CERT_LOGOTYPE_REFERENCE = extern struct {
cHashedUrl: DWORD,
rgHashedUrl: PCERT_HASHED_URL,
};
pub const CERT_LOGOTYPE_REFERENCE = struct__CERT_LOGOTYPE_REFERENCE;
pub const PCERT_LOGOTYPE_REFERENCE = ?&struct__CERT_LOGOTYPE_REFERENCE;
pub const struct__CERT_LOGOTYPE_IMAGE_INFO = @OpaqueType();
pub const CERT_LOGOTYPE_IMAGE_INFO = struct__CERT_LOGOTYPE_IMAGE_INFO;
pub const PCERT_LOGOTYPE_IMAGE_INFO = ?&struct__CERT_LOGOTYPE_IMAGE_INFO;
pub const struct__CERT_LOGOTYPE_IMAGE = extern struct {
LogotypeDetails: CERT_LOGOTYPE_DETAILS,
pLogotypeImageInfo: PCERT_LOGOTYPE_IMAGE_INFO,
};
pub const CERT_LOGOTYPE_IMAGE = struct__CERT_LOGOTYPE_IMAGE;
pub const PCERT_LOGOTYPE_IMAGE = ?&struct__CERT_LOGOTYPE_IMAGE;
pub const struct__CERT_LOGOTYPE_AUDIO_INFO = extern struct {
dwFileSize: DWORD,
dwPlayTime: DWORD,
dwChannels: DWORD,
dwSampleRate: DWORD,
pwszLanguage: LPWSTR,
};
pub const CERT_LOGOTYPE_AUDIO_INFO = struct__CERT_LOGOTYPE_AUDIO_INFO;
pub const PCERT_LOGOTYPE_AUDIO_INFO = ?&struct__CERT_LOGOTYPE_AUDIO_INFO;
pub const struct__CERT_LOGOTYPE_AUDIO = extern struct {
LogotypeDetails: CERT_LOGOTYPE_DETAILS,
pLogotypeAudioInfo: PCERT_LOGOTYPE_AUDIO_INFO,
};
pub const CERT_LOGOTYPE_AUDIO = struct__CERT_LOGOTYPE_AUDIO;
pub const PCERT_LOGOTYPE_AUDIO = ?&struct__CERT_LOGOTYPE_AUDIO;
pub const struct__CERT_LOGOTYPE_DATA = extern struct {
cLogotypeImage: DWORD,
rgLogotypeImage: PCERT_LOGOTYPE_IMAGE,
cLogotypeAudio: DWORD,
rgLogotypeAudio: PCERT_LOGOTYPE_AUDIO,
};
pub const CERT_LOGOTYPE_DATA = struct__CERT_LOGOTYPE_DATA;
pub const PCERT_LOGOTYPE_DATA = ?&struct__CERT_LOGOTYPE_DATA;
pub const struct__CERT_LOGOTYPE_INFO = @OpaqueType();
pub const CERT_LOGOTYPE_INFO = struct__CERT_LOGOTYPE_INFO;
pub const PCERT_LOGOTYPE_INFO = ?&struct__CERT_LOGOTYPE_INFO;
pub const struct__CERT_OTHER_LOGOTYPE_INFO = extern struct {
pszObjId: LPSTR,
LogotypeInfo: CERT_LOGOTYPE_INFO,
};
pub const CERT_OTHER_LOGOTYPE_INFO = struct__CERT_OTHER_LOGOTYPE_INFO;
pub const PCERT_OTHER_LOGOTYPE_INFO = ?&struct__CERT_OTHER_LOGOTYPE_INFO;
pub const struct__CERT_LOGOTYPE_EXT_INFO = extern struct {
cCommunityLogo: DWORD,
rgCommunityLogo: PCERT_LOGOTYPE_INFO,
pIssuerLogo: PCERT_LOGOTYPE_INFO,
pSubjectLogo: PCERT_LOGOTYPE_INFO,
cOtherLogo: DWORD,
rgOtherLogo: PCERT_OTHER_LOGOTYPE_INFO,
};
pub const CERT_LOGOTYPE_EXT_INFO = struct__CERT_LOGOTYPE_EXT_INFO;
pub const PCERT_LOGOTYPE_EXT_INFO = ?&struct__CERT_LOGOTYPE_EXT_INFO;
pub const struct__CERT_BIOMETRIC_DATA = @OpaqueType();
pub const CERT_BIOMETRIC_DATA = struct__CERT_BIOMETRIC_DATA;
pub const PCERT_BIOMETRIC_DATA = ?&struct__CERT_BIOMETRIC_DATA;
pub const struct__CERT_BIOMETRIC_EXT_INFO = extern struct {
cBiometricData: DWORD,
rgBiometricData: PCERT_BIOMETRIC_DATA,
};
pub const CERT_BIOMETRIC_EXT_INFO = struct__CERT_BIOMETRIC_EXT_INFO;
pub const PCERT_BIOMETRIC_EXT_INFO = ?&struct__CERT_BIOMETRIC_EXT_INFO;
pub const struct__OCSP_SIGNATURE_INFO = extern struct {
SignatureAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
Signature: CRYPT_BIT_BLOB,
cCertEncoded: DWORD,
rgCertEncoded: PCERT_BLOB,
};
pub const OCSP_SIGNATURE_INFO = struct__OCSP_SIGNATURE_INFO;
pub const POCSP_SIGNATURE_INFO = ?&struct__OCSP_SIGNATURE_INFO;
pub const struct__OCSP_SIGNED_REQUEST_INFO = extern struct {
ToBeSigned: CRYPT_DER_BLOB,
pOptionalSignatureInfo: POCSP_SIGNATURE_INFO,
};
pub const OCSP_SIGNED_REQUEST_INFO = struct__OCSP_SIGNED_REQUEST_INFO;
pub const POCSP_SIGNED_REQUEST_INFO = ?&struct__OCSP_SIGNED_REQUEST_INFO;
pub const struct__OCSP_CERT_ID = extern struct {
HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
IssuerNameHash: CRYPT_HASH_BLOB,
IssuerKeyHash: CRYPT_HASH_BLOB,
SerialNumber: CRYPT_INTEGER_BLOB,
};
pub const OCSP_CERT_ID = struct__OCSP_CERT_ID;
pub const POCSP_CERT_ID = ?&struct__OCSP_CERT_ID;
pub const struct__OCSP_REQUEST_ENTRY = extern struct {
CertId: OCSP_CERT_ID,
cExtension: DWORD,
rgExtension: PCERT_EXTENSION,
};
pub const OCSP_REQUEST_ENTRY = struct__OCSP_REQUEST_ENTRY;
pub const POCSP_REQUEST_ENTRY = ?&struct__OCSP_REQUEST_ENTRY;
pub const struct__OCSP_REQUEST_INFO = extern struct {
dwVersion: DWORD,
pRequestorName: PCERT_ALT_NAME_ENTRY,
cRequestEntry: DWORD,
rgRequestEntry: POCSP_REQUEST_ENTRY,
cExtension: DWORD,
rgExtension: PCERT_EXTENSION,
};
pub const OCSP_REQUEST_INFO = struct__OCSP_REQUEST_INFO;
pub const POCSP_REQUEST_INFO = ?&struct__OCSP_REQUEST_INFO;
pub const struct__OCSP_RESPONSE_INFO = extern struct {
dwStatus: DWORD,
pszObjId: LPSTR,
Value: CRYPT_OBJID_BLOB,
};
pub const OCSP_RESPONSE_INFO = struct__OCSP_RESPONSE_INFO;
pub const POCSP_RESPONSE_INFO = ?&struct__OCSP_RESPONSE_INFO;
pub const struct__OCSP_BASIC_SIGNED_RESPONSE_INFO = extern struct {
ToBeSigned: CRYPT_DER_BLOB,
SignatureInfo: OCSP_SIGNATURE_INFO,
};
pub const OCSP_BASIC_SIGNED_RESPONSE_INFO = struct__OCSP_BASIC_SIGNED_RESPONSE_INFO;
pub const POCSP_BASIC_SIGNED_RESPONSE_INFO = ?&struct__OCSP_BASIC_SIGNED_RESPONSE_INFO;
pub const struct__OCSP_BASIC_REVOKED_INFO = extern struct {
RevocationDate: FILETIME,
dwCrlReasonCode: DWORD,
};
pub const OCSP_BASIC_REVOKED_INFO = struct__OCSP_BASIC_REVOKED_INFO;
pub const POCSP_BASIC_REVOKED_INFO = ?&struct__OCSP_BASIC_REVOKED_INFO;
pub const struct__OCSP_BASIC_RESPONSE_ENTRY = @OpaqueType();
pub const OCSP_BASIC_RESPONSE_ENTRY = struct__OCSP_BASIC_RESPONSE_ENTRY;
pub const POCSP_BASIC_RESPONSE_ENTRY = ?&struct__OCSP_BASIC_RESPONSE_ENTRY;
pub const struct__OCSP_BASIC_RESPONSE_INFO = @OpaqueType();
pub const OCSP_BASIC_RESPONSE_INFO = struct__OCSP_BASIC_RESPONSE_INFO;
pub const POCSP_BASIC_RESPONSE_INFO = ?&struct__OCSP_BASIC_RESPONSE_INFO;
pub const struct__CERT_SUPPORTED_ALGORITHM_INFO = extern struct {
Algorithm: CRYPT_ALGORITHM_IDENTIFIER,
IntendedKeyUsage: CRYPT_BIT_BLOB,
IntendedCertPolicies: CERT_POLICIES_INFO,
};
pub const CERT_SUPPORTED_ALGORITHM_INFO = struct__CERT_SUPPORTED_ALGORITHM_INFO;
pub const PCERT_SUPPORTED_ALGORITHM_INFO = ?&struct__CERT_SUPPORTED_ALGORITHM_INFO;
pub const struct__CERT_TPM_SPECIFICATION_INFO = extern struct {
pwszFamily: LPWSTR,
dwLevel: DWORD,
dwRevision: DWORD,
};
pub const CERT_TPM_SPECIFICATION_INFO = struct__CERT_TPM_SPECIFICATION_INFO;
pub const PCERT_TPM_SPECIFICATION_INFO = ?&struct__CERT_TPM_SPECIFICATION_INFO;
pub const HCRYPTOIDFUNCSET = ?&c_void;
pub const HCRYPTOIDFUNCADDR = ?&c_void;
pub const struct__CRYPT_OID_FUNC_ENTRY = extern struct {
pszOID: LPCSTR,
pvFuncAddr: ?&c_void,
};
pub const CRYPT_OID_FUNC_ENTRY = struct__CRYPT_OID_FUNC_ENTRY;
pub const PCRYPT_OID_FUNC_ENTRY = ?&struct__CRYPT_OID_FUNC_ENTRY;
pub extern fn CryptInstallOIDFunctionAddress(hModule: HMODULE, dwEncodingType: DWORD, pszFuncName: LPCSTR, cFuncEntry: DWORD, rgFuncEntry: ?&const CRYPT_OID_FUNC_ENTRY, dwFlags: DWORD) -> BOOL;
pub extern fn CryptInitOIDFunctionSet(pszFuncName: LPCSTR, dwFlags: DWORD) -> HCRYPTOIDFUNCSET;
pub extern fn CryptGetOIDFunctionAddress(hFuncSet: HCRYPTOIDFUNCSET, dwEncodingType: DWORD, pszOID: LPCSTR, dwFlags: DWORD, ppvFuncAddr: ?&(?&c_void), phFuncAddr: ?&HCRYPTOIDFUNCADDR) -> BOOL;
pub extern fn CryptGetDefaultOIDDllList(hFuncSet: HCRYPTOIDFUNCSET, dwEncodingType: DWORD, pwszDllList: ?&WCHAR, pcchDllList: ?&DWORD) -> BOOL;
pub extern fn CryptGetDefaultOIDFunctionAddress(hFuncSet: HCRYPTOIDFUNCSET, dwEncodingType: DWORD, pwszDll: LPCWSTR, dwFlags: DWORD, ppvFuncAddr: ?&(?&c_void), phFuncAddr: ?&HCRYPTOIDFUNCADDR) -> BOOL;
pub extern fn CryptFreeOIDFunctionAddress(hFuncAddr: HCRYPTOIDFUNCADDR, dwFlags: DWORD) -> BOOL;
pub extern fn CryptRegisterOIDFunction(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, pwszDll: LPCWSTR, pszOverrideFuncName: LPCSTR) -> BOOL;
pub extern fn CryptUnregisterOIDFunction(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR) -> BOOL;
pub extern fn CryptRegisterDefaultOIDFunction(dwEncodingType: DWORD, pszFuncName: LPCSTR, dwIndex: DWORD, pwszDll: LPCWSTR) -> BOOL;
pub extern fn CryptUnregisterDefaultOIDFunction(dwEncodingType: DWORD, pszFuncName: LPCSTR, pwszDll: LPCWSTR) -> BOOL;
pub extern fn CryptSetOIDFunctionValue(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, pwszValueName: LPCWSTR, dwValueType: DWORD, pbValueData: ?&const BYTE, cbValueData: DWORD) -> BOOL;
pub extern fn CryptGetOIDFunctionValue(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, pwszValueName: LPCWSTR, pdwValueType: ?&DWORD, pbValueData: ?&BYTE, pcbValueData: ?&DWORD) -> BOOL;
pub const PFN_CRYPT_ENUM_OID_FUNC = ?extern fn(DWORD, LPCSTR, LPCSTR, DWORD, ?&const DWORD, ?&const LPCWSTR, ?&const (?&const BYTE), ?&const DWORD, ?&c_void) -> BOOL;
pub extern fn CryptEnumOIDFunction(dwEncodingType: DWORD, pszFuncName: LPCSTR, pszOID: LPCSTR, dwFlags: DWORD, pvArg: ?&c_void, pfnEnumOIDFunc: PFN_CRYPT_ENUM_OID_FUNC) -> BOOL;
pub const struct__CRYPT_OID_INFO = @OpaqueType();
pub const CRYPT_OID_INFO = struct__CRYPT_OID_INFO;
pub const PCRYPT_OID_INFO = ?&struct__CRYPT_OID_INFO;
pub const CCRYPT_OID_INFO = CRYPT_OID_INFO;
pub const PCCRYPT_OID_INFO = ?&const CRYPT_OID_INFO;
pub extern fn CryptFindOIDInfo(dwKeyType: DWORD, pvKey: ?&c_void, dwGroupId: DWORD) -> PCCRYPT_OID_INFO;
pub extern fn CryptRegisterOIDInfo(pInfo: PCCRYPT_OID_INFO, dwFlags: DWORD) -> BOOL;
pub extern fn CryptUnregisterOIDInfo(pInfo: PCCRYPT_OID_INFO) -> BOOL;
pub const PFN_CRYPT_ENUM_OID_INFO = ?extern fn(PCCRYPT_OID_INFO, ?&c_void) -> BOOL;
pub extern fn CryptEnumOIDInfo(dwGroupId: DWORD, dwFlags: DWORD, pvArg: ?&c_void, pfnEnumOIDInfo: PFN_CRYPT_ENUM_OID_INFO) -> BOOL;
pub extern fn CryptFindLocalizedName(pwszCryptName: LPCWSTR) -> LPCWSTR;
pub const struct__CERT_STRONG_SIGN_SERIALIZED_INFO = extern struct {
dwFlags: DWORD,
pwszCNGSignHashAlgids: LPWSTR,
pwszCNGPubKeyMinBitLengths: LPWSTR,
};
pub const CERT_STRONG_SIGN_SERIALIZED_INFO = struct__CERT_STRONG_SIGN_SERIALIZED_INFO;
pub const PCERT_STRONG_SIGN_SERIALIZED_INFO = ?&struct__CERT_STRONG_SIGN_SERIALIZED_INFO;
pub const struct__CERT_STRONG_SIGN_PARA = @OpaqueType();
pub const CERT_STRONG_SIGN_PARA = struct__CERT_STRONG_SIGN_PARA;
pub const PCERT_STRONG_SIGN_PARA = ?&struct__CERT_STRONG_SIGN_PARA;
pub const PCCERT_STRONG_SIGN_PARA = ?&const CERT_STRONG_SIGN_PARA;
pub const HCRYPTMSG = ?&c_void;
pub const struct__CERT_ISSUER_SERIAL_NUMBER = extern struct {
Issuer: CERT_NAME_BLOB,
SerialNumber: CRYPT_INTEGER_BLOB,
};
pub const CERT_ISSUER_SERIAL_NUMBER = struct__CERT_ISSUER_SERIAL_NUMBER;
pub const PCERT_ISSUER_SERIAL_NUMBER = ?&struct__CERT_ISSUER_SERIAL_NUMBER;
pub const struct__CERT_ID = @OpaqueType();
pub const CERT_ID = struct__CERT_ID;
pub const PCERT_ID = ?&struct__CERT_ID;
pub const struct__CMSG_SIGNER_ENCODE_INFO = @OpaqueType();
pub const CMSG_SIGNER_ENCODE_INFO = struct__CMSG_SIGNER_ENCODE_INFO;
pub const PCMSG_SIGNER_ENCODE_INFO = ?&struct__CMSG_SIGNER_ENCODE_INFO;
pub const struct__CMSG_SIGNED_ENCODE_INFO = extern struct {
cbSize: DWORD,
cSigners: DWORD,
rgSigners: PCMSG_SIGNER_ENCODE_INFO,
cCertEncoded: DWORD,
rgCertEncoded: PCERT_BLOB,
cCrlEncoded: DWORD,
rgCrlEncoded: PCRL_BLOB,
};
pub const CMSG_SIGNED_ENCODE_INFO = struct__CMSG_SIGNED_ENCODE_INFO;
pub const PCMSG_SIGNED_ENCODE_INFO = ?&struct__CMSG_SIGNED_ENCODE_INFO;
pub const struct__CMSG_RECIPIENT_ENCODE_INFO = @OpaqueType();
pub const CMSG_RECIPIENT_ENCODE_INFO = struct__CMSG_RECIPIENT_ENCODE_INFO;
pub const PCMSG_RECIPIENT_ENCODE_INFO = ?&struct__CMSG_RECIPIENT_ENCODE_INFO;
pub const struct__CMSG_ENVELOPED_ENCODE_INFO = extern struct {
cbSize: DWORD,
hCryptProv: HCRYPTPROV_LEGACY,
ContentEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
pvEncryptionAuxInfo: ?&c_void,
cRecipients: DWORD,
rgpRecipients: ?&PCERT_INFO,
};
pub const CMSG_ENVELOPED_ENCODE_INFO = struct__CMSG_ENVELOPED_ENCODE_INFO;
pub const PCMSG_ENVELOPED_ENCODE_INFO = ?&struct__CMSG_ENVELOPED_ENCODE_INFO;
pub const struct__CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = extern struct {
cbSize: DWORD,
KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
pvKeyEncryptionAuxInfo: ?&c_void,
hCryptProv: HCRYPTPROV_LEGACY,
RecipientPublicKey: CRYPT_BIT_BLOB,
RecipientId: CERT_ID,
};
pub const CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = struct__CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO;
pub const PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO = ?&struct__CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO;
pub const struct__CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO = extern struct {
cbSize: DWORD,
RecipientPublicKey: CRYPT_BIT_BLOB,
RecipientId: CERT_ID,
Date: FILETIME,
pOtherAttr: PCRYPT_ATTRIBUTE_TYPE_VALUE,
};
pub const CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO = struct__CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO;
pub const PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO = ?&struct__CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO;
pub const struct__CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO = @OpaqueType();
pub const CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO = struct__CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO;
pub const PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO = ?&struct__CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO;
pub const struct__CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO = @OpaqueType();
pub const CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO = struct__CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO;
pub const PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO = ?&struct__CMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO;
pub const struct__CMSG_RC2_AUX_INFO = extern struct {
cbSize: DWORD,
dwBitLen: DWORD,
};
pub const CMSG_RC2_AUX_INFO = struct__CMSG_RC2_AUX_INFO;
pub const PCMSG_RC2_AUX_INFO = ?&struct__CMSG_RC2_AUX_INFO;
pub const struct__CMSG_SP3_COMPATIBLE_AUX_INFO = extern struct {
cbSize: DWORD,
dwFlags: DWORD,
};
pub const CMSG_SP3_COMPATIBLE_AUX_INFO = struct__CMSG_SP3_COMPATIBLE_AUX_INFO;
pub const PCMSG_SP3_COMPATIBLE_AUX_INFO = ?&struct__CMSG_SP3_COMPATIBLE_AUX_INFO;
pub const struct__CMSG_RC4_AUX_INFO = extern struct {
cbSize: DWORD,
dwBitLen: DWORD,
};
pub const CMSG_RC4_AUX_INFO = struct__CMSG_RC4_AUX_INFO;
pub const PCMSG_RC4_AUX_INFO = ?&struct__CMSG_RC4_AUX_INFO;
pub const struct__CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO = extern struct {
cbSize: DWORD,
SignedInfo: CMSG_SIGNED_ENCODE_INFO,
EnvelopedInfo: CMSG_ENVELOPED_ENCODE_INFO,
};
pub const CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO = struct__CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO;
pub const PCMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO = ?&struct__CMSG_SIGNED_AND_ENVELOPED_ENCODE_INFO;
pub const struct__CMSG_HASHED_ENCODE_INFO = extern struct {
cbSize: DWORD,
hCryptProv: HCRYPTPROV_LEGACY,
HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
pvHashAuxInfo: ?&c_void,
};
pub const CMSG_HASHED_ENCODE_INFO = struct__CMSG_HASHED_ENCODE_INFO;
pub const PCMSG_HASHED_ENCODE_INFO = ?&struct__CMSG_HASHED_ENCODE_INFO;
pub const struct__CMSG_ENCRYPTED_ENCODE_INFO = extern struct {
cbSize: DWORD,
ContentEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
pvEncryptionAuxInfo: ?&c_void,
};
pub const CMSG_ENCRYPTED_ENCODE_INFO = struct__CMSG_ENCRYPTED_ENCODE_INFO;
pub const PCMSG_ENCRYPTED_ENCODE_INFO = ?&struct__CMSG_ENCRYPTED_ENCODE_INFO;
pub const PFN_CMSG_STREAM_OUTPUT = ?extern fn(?&const c_void, ?&BYTE, DWORD, BOOL) -> BOOL;
pub const struct__CMSG_STREAM_INFO = extern struct {
cbContent: DWORD,
pfnStreamOutput: PFN_CMSG_STREAM_OUTPUT,
pvArg: ?&c_void,
};
pub const CMSG_STREAM_INFO = struct__CMSG_STREAM_INFO;
pub const PCMSG_STREAM_INFO = ?&struct__CMSG_STREAM_INFO;
pub extern fn CryptMsgOpenToEncode(dwMsgEncodingType: DWORD, dwFlags: DWORD, dwMsgType: DWORD, pvMsgEncodeInfo: ?&const c_void, pszInnerContentObjID: LPSTR, pStreamInfo: PCMSG_STREAM_INFO) -> HCRYPTMSG;
pub extern fn CryptMsgCalculateEncodedLength(dwMsgEncodingType: DWORD, dwFlags: DWORD, dwMsgType: DWORD, pvMsgEncodeInfo: ?&const c_void, pszInnerContentObjID: LPSTR, cbData: DWORD) -> DWORD;
pub extern fn CryptMsgOpenToDecode(dwMsgEncodingType: DWORD, dwFlags: DWORD, dwMsgType: DWORD, hCryptProv: HCRYPTPROV_LEGACY, pRecipientInfo: PCERT_INFO, pStreamInfo: PCMSG_STREAM_INFO) -> HCRYPTMSG;
pub extern fn CryptMsgDuplicate(hCryptMsg: HCRYPTMSG) -> HCRYPTMSG;
pub extern fn CryptMsgClose(hCryptMsg: HCRYPTMSG) -> BOOL;
pub extern fn CryptMsgUpdate(hCryptMsg: HCRYPTMSG, pbData: ?&const BYTE, cbData: DWORD, fFinal: BOOL) -> BOOL;
pub extern fn CryptMsgGetParam(hCryptMsg: HCRYPTMSG, dwParamType: DWORD, dwIndex: DWORD, pvData: ?&c_void, pcbData: ?&DWORD) -> BOOL;
pub const struct__CMSG_SIGNER_INFO = extern struct {
dwVersion: DWORD,
Issuer: CERT_NAME_BLOB,
SerialNumber: CRYPT_INTEGER_BLOB,
HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
HashEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
EncryptedHash: CRYPT_DATA_BLOB,
AuthAttrs: CRYPT_ATTRIBUTES,
UnauthAttrs: CRYPT_ATTRIBUTES,
};
pub const CMSG_SIGNER_INFO = struct__CMSG_SIGNER_INFO;
pub const PCMSG_SIGNER_INFO = ?&struct__CMSG_SIGNER_INFO;
pub const struct__CMSG_CMS_SIGNER_INFO = extern struct {
dwVersion: DWORD,
SignerId: CERT_ID,
HashAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
HashEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
EncryptedHash: CRYPT_DATA_BLOB,
AuthAttrs: CRYPT_ATTRIBUTES,
UnauthAttrs: CRYPT_ATTRIBUTES,
};
pub const CMSG_CMS_SIGNER_INFO = struct__CMSG_CMS_SIGNER_INFO;
pub const PCMSG_CMS_SIGNER_INFO = ?&struct__CMSG_CMS_SIGNER_INFO;
pub const CMSG_ATTR = CRYPT_ATTRIBUTES;
pub const PCMSG_ATTR = ?&CRYPT_ATTRIBUTES;
pub const struct__CMSG_KEY_TRANS_RECIPIENT_INFO = extern struct {
dwVersion: DWORD,
RecipientId: CERT_ID,
KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
EncryptedKey: CRYPT_DATA_BLOB,
};
pub const CMSG_KEY_TRANS_RECIPIENT_INFO = struct__CMSG_KEY_TRANS_RECIPIENT_INFO;
pub const PCMSG_KEY_TRANS_RECIPIENT_INFO = ?&struct__CMSG_KEY_TRANS_RECIPIENT_INFO;
pub const struct__CMSG_RECIPIENT_ENCRYPTED_KEY_INFO = extern struct {
RecipientId: CERT_ID,
EncryptedKey: CRYPT_DATA_BLOB,
Date: FILETIME,
pOtherAttr: PCRYPT_ATTRIBUTE_TYPE_VALUE,
};
pub const CMSG_RECIPIENT_ENCRYPTED_KEY_INFO = struct__CMSG_RECIPIENT_ENCRYPTED_KEY_INFO;
pub const PCMSG_RECIPIENT_ENCRYPTED_KEY_INFO = ?&struct__CMSG_RECIPIENT_ENCRYPTED_KEY_INFO;
pub const struct__CMSG_KEY_AGREE_RECIPIENT_INFO = @OpaqueType();
pub const CMSG_KEY_AGREE_RECIPIENT_INFO = struct__CMSG_KEY_AGREE_RECIPIENT_INFO;
pub const PCMSG_KEY_AGREE_RECIPIENT_INFO = ?&struct__CMSG_KEY_AGREE_RECIPIENT_INFO;
pub const struct__CMSG_MAIL_LIST_RECIPIENT_INFO = extern struct {
dwVersion: DWORD,
KeyId: CRYPT_DATA_BLOB,
KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
EncryptedKey: CRYPT_DATA_BLOB,
Date: FILETIME,
pOtherAttr: PCRYPT_ATTRIBUTE_TYPE_VALUE,
};
pub const CMSG_MAIL_LIST_RECIPIENT_INFO = struct__CMSG_MAIL_LIST_RECIPIENT_INFO;
pub const PCMSG_MAIL_LIST_RECIPIENT_INFO = ?&struct__CMSG_MAIL_LIST_RECIPIENT_INFO;
pub const struct__CMSG_CMS_RECIPIENT_INFO = @OpaqueType();
pub const CMSG_CMS_RECIPIENT_INFO = struct__CMSG_CMS_RECIPIENT_INFO;
pub const PCMSG_CMS_RECIPIENT_INFO = ?&struct__CMSG_CMS_RECIPIENT_INFO;
pub extern fn CryptMsgControl(hCryptMsg: HCRYPTMSG, dwFlags: DWORD, dwCtrlType: DWORD, pvCtrlPara: ?&const c_void) -> BOOL;
pub const struct__CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA = extern struct {
cbSize: DWORD,
hCryptProv: HCRYPTPROV_LEGACY,
dwSignerIndex: DWORD,
dwSignerType: DWORD,
pvSigner: ?&c_void,
};
pub const CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA = struct__CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA;
pub const PCMSG_CTRL_VERIFY_SIGNATURE_EX_PARA = ?&struct__CMSG_CTRL_VERIFY_SIGNATURE_EX_PARA;
pub const struct__CMSG_CTRL_DECRYPT_PARA = @OpaqueType();
pub const CMSG_CTRL_DECRYPT_PARA = struct__CMSG_CTRL_DECRYPT_PARA;
pub const PCMSG_CTRL_DECRYPT_PARA = ?&struct__CMSG_CTRL_DECRYPT_PARA;
pub const struct__CMSG_CTRL_KEY_TRANS_DECRYPT_PARA = @OpaqueType();
pub const CMSG_CTRL_KEY_TRANS_DECRYPT_PARA = struct__CMSG_CTRL_KEY_TRANS_DECRYPT_PARA;
pub const PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA = ?&struct__CMSG_CTRL_KEY_TRANS_DECRYPT_PARA;
pub const struct__CMSG_CTRL_KEY_AGREE_DECRYPT_PARA = @OpaqueType();
pub const CMSG_CTRL_KEY_AGREE_DECRYPT_PARA = struct__CMSG_CTRL_KEY_AGREE_DECRYPT_PARA;
pub const PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA = ?&struct__CMSG_CTRL_KEY_AGREE_DECRYPT_PARA;
pub const struct__CMSG_CTRL_MAIL_LIST_DECRYPT_PARA = @OpaqueType();
pub const CMSG_CTRL_MAIL_LIST_DECRYPT_PARA = struct__CMSG_CTRL_MAIL_LIST_DECRYPT_PARA;
pub const PCMSG_CTRL_MAIL_LIST_DECRYPT_PARA = ?&struct__CMSG_CTRL_MAIL_LIST_DECRYPT_PARA;
pub const struct__CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA = extern struct {
cbSize: DWORD,
dwSignerIndex: DWORD,
blob: CRYPT_DATA_BLOB,
};
pub const CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA = struct__CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA;
pub const PCMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA = ?&struct__CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR_PARA;
pub const struct__CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA = extern struct {
cbSize: DWORD,
dwSignerIndex: DWORD,
dwUnauthAttrIndex: DWORD,
};
pub const CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA = struct__CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA;
pub const PCMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA = ?&struct__CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR_PARA;
pub extern fn CryptMsgVerifyCountersignatureEncoded(hCryptProv: HCRYPTPROV_LEGACY, dwEncodingType: DWORD, pbSignerInfo: PBYTE, cbSignerInfo: DWORD, pbSignerInfoCountersignature: PBYTE, cbSignerInfoCountersignature: DWORD, pciCountersigner: PCERT_INFO) -> BOOL;
pub extern fn CryptMsgVerifyCountersignatureEncodedEx(hCryptProv: HCRYPTPROV_LEGACY, dwEncodingType: DWORD, pbSignerInfo: PBYTE, cbSignerInfo: DWORD, pbSignerInfoCountersignature: PBYTE, cbSignerInfoCountersignature: DWORD, dwSignerType: DWORD, pvSigner: ?&c_void, dwFlags: DWORD, pvExtra: ?&c_void) -> BOOL;
pub extern fn CryptMsgCountersign(hCryptMsg: HCRYPTMSG, dwIndex: DWORD, cCountersigners: DWORD, rgCountersigners: PCMSG_SIGNER_ENCODE_INFO) -> BOOL;
pub extern fn CryptMsgCountersignEncoded(dwEncodingType: DWORD, pbSignerInfo: PBYTE, cbSignerInfo: DWORD, cCountersigners: DWORD, rgCountersigners: PCMSG_SIGNER_ENCODE_INFO, pbCountersignature: PBYTE, pcbCountersignature: PDWORD) -> BOOL;
pub const PFN_CMSG_ALLOC = ?extern fn(usize) -> ?&c_void;
pub const PFN_CMSG_FREE = ?extern fn(?&c_void);
pub const PFN_CMSG_GEN_ENCRYPT_KEY = ?extern fn(?&HCRYPTPROV, PCRYPT_ALGORITHM_IDENTIFIER, PVOID, PCERT_PUBLIC_KEY_INFO, PFN_CMSG_ALLOC, ?&HCRYPTKEY, ?&PBYTE, PDWORD) -> BOOL;
pub const PFN_CMSG_EXPORT_ENCRYPT_KEY = ?extern fn(HCRYPTPROV, HCRYPTKEY, PCERT_PUBLIC_KEY_INFO, PBYTE, PDWORD) -> BOOL;
pub const PFN_CMSG_IMPORT_ENCRYPT_KEY = ?extern fn(HCRYPTPROV, DWORD, PCRYPT_ALGORITHM_IDENTIFIER, PCRYPT_ALGORITHM_IDENTIFIER, PBYTE, DWORD, ?&HCRYPTKEY) -> BOOL;
pub const struct__CMSG_CONTENT_ENCRYPT_INFO = @OpaqueType();
pub const CMSG_CONTENT_ENCRYPT_INFO = struct__CMSG_CONTENT_ENCRYPT_INFO;
pub const PCMSG_CONTENT_ENCRYPT_INFO = ?&struct__CMSG_CONTENT_ENCRYPT_INFO;
pub const PFN_CMSG_GEN_CONTENT_ENCRYPT_KEY = ?extern fn(PCMSG_CONTENT_ENCRYPT_INFO, DWORD, ?&c_void) -> BOOL;
pub const struct__CMSG_KEY_TRANS_ENCRYPT_INFO = extern struct {
cbSize: DWORD,
dwRecipientIndex: DWORD,
KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
EncryptedKey: CRYPT_DATA_BLOB,
dwFlags: DWORD,
};
pub const CMSG_KEY_TRANS_ENCRYPT_INFO = struct__CMSG_KEY_TRANS_ENCRYPT_INFO;
pub const PCMSG_KEY_TRANS_ENCRYPT_INFO = ?&struct__CMSG_KEY_TRANS_ENCRYPT_INFO;
pub const PFN_CMSG_EXPORT_KEY_TRANS = ?extern fn(PCMSG_CONTENT_ENCRYPT_INFO, PCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO, PCMSG_KEY_TRANS_ENCRYPT_INFO, DWORD, ?&c_void) -> BOOL;
pub const struct__CMSG_KEY_AGREE_KEY_ENCRYPT_INFO = extern struct {
cbSize: DWORD,
EncryptedKey: CRYPT_DATA_BLOB,
};
pub const CMSG_KEY_AGREE_KEY_ENCRYPT_INFO = struct__CMSG_KEY_AGREE_KEY_ENCRYPT_INFO;
pub const PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO = ?&struct__CMSG_KEY_AGREE_KEY_ENCRYPT_INFO;
pub const struct__CMSG_KEY_AGREE_ENCRYPT_INFO = @OpaqueType();
pub const CMSG_KEY_AGREE_ENCRYPT_INFO = struct__CMSG_KEY_AGREE_ENCRYPT_INFO;
pub const PCMSG_KEY_AGREE_ENCRYPT_INFO = ?&struct__CMSG_KEY_AGREE_ENCRYPT_INFO;
pub const PFN_CMSG_EXPORT_KEY_AGREE = ?extern fn(PCMSG_CONTENT_ENCRYPT_INFO, PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, PCMSG_KEY_AGREE_ENCRYPT_INFO, DWORD, ?&c_void) -> BOOL;
pub const struct__CMSG_MAIL_LIST_ENCRYPT_INFO = extern struct {
cbSize: DWORD,
dwRecipientIndex: DWORD,
KeyEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
EncryptedKey: CRYPT_DATA_BLOB,
dwFlags: DWORD,
};
pub const CMSG_MAIL_LIST_ENCRYPT_INFO = struct__CMSG_MAIL_LIST_ENCRYPT_INFO;
pub const PCMSG_MAIL_LIST_ENCRYPT_INFO = ?&struct__CMSG_MAIL_LIST_ENCRYPT_INFO;
pub const PFN_CMSG_EXPORT_MAIL_LIST = ?extern fn(PCMSG_CONTENT_ENCRYPT_INFO, PCMSG_MAIL_LIST_RECIPIENT_ENCODE_INFO, PCMSG_MAIL_LIST_ENCRYPT_INFO, DWORD, ?&c_void) -> BOOL;
pub const PFN_CMSG_IMPORT_KEY_TRANS = ?extern fn(PCRYPT_ALGORITHM_IDENTIFIER, PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA, DWORD, ?&c_void, ?&HCRYPTKEY) -> BOOL;
pub const PFN_CMSG_IMPORT_KEY_AGREE = ?extern fn(PCRYPT_ALGORITHM_IDENTIFIER, PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA, DWORD, ?&c_void, ?&HCRYPTKEY) -> BOOL;
pub const PFN_CMSG_IMPORT_MAIL_LIST = ?extern fn(PCRYPT_ALGORITHM_IDENTIFIER, PCMSG_CTRL_MAIL_LIST_DECRYPT_PARA, DWORD, ?&c_void, ?&HCRYPTKEY) -> BOOL;
pub const struct__CMSG_CNG_CONTENT_DECRYPT_INFO = extern struct {
cbSize: DWORD,
ContentEncryptionAlgorithm: CRYPT_ALGORITHM_IDENTIFIER,
pfnAlloc: PFN_CMSG_ALLOC,
pfnFree: PFN_CMSG_FREE,
hNCryptKey: NCRYPT_KEY_HANDLE,
pbContentEncryptKey: ?&BYTE,
cbContentEncryptKey: DWORD,
hCNGContentEncryptKey: BCRYPT_KEY_HANDLE,
pbCNGContentEncryptKeyObject: ?&BYTE,
};
pub const CMSG_CNG_CONTENT_DECRYPT_INFO = struct__CMSG_CNG_CONTENT_DECRYPT_INFO;
pub const PCMSG_CNG_CONTENT_DECRYPT_INFO = ?&struct__CMSG_CNG_CONTENT_DECRYPT_INFO;
pub const PFN_CMSG_CNG_IMPORT_KEY_TRANS = ?extern fn(PCMSG_CNG_CONTENT_DECRYPT_INFO, PCMSG_CTRL_KEY_TRANS_DECRYPT_PARA, DWORD, ?&c_void) -> BOOL;
pub const PFN_CMSG_CNG_IMPORT_KEY_AGREE = ?extern fn(PCMSG_CNG_CONTENT_DECRYPT_INFO, PCMSG_CTRL_KEY_AGREE_DECRYPT_PARA, DWORD, ?&c_void) -> BOOL;
pub const PFN_CMSG_CNG_IMPORT_CONTENT_ENCRYPT_KEY = ?extern fn(PCMSG_CNG_CONTENT_DECRYPT_INFO, DWORD, ?&c_void) -> BOOL;
pub const HCERTSTORE = ?&c_void;
pub const struct__CERT_CONTEXT = extern struct {
dwCertEncodingType: DWORD,
pbCertEncoded: ?&BYTE,
cbCertEncoded: DWORD,
pCertInfo: PCERT_INFO,
hCertStore: HCERTSTORE,
};
pub const CERT_CONTEXT = struct__CERT_CONTEXT;
pub const PCERT_CONTEXT = ?&struct__CERT_CONTEXT;
pub const PCCERT_CONTEXT = ?&const CERT_CONTEXT;
pub const struct__CRL_CONTEXT = extern struct {
dwCertEncodingType: DWORD,
pbCrlEncoded: ?&BYTE,
cbCrlEncoded: DWORD,
pCrlInfo: PCRL_INFO,
hCertStore: HCERTSTORE,
};
pub const CRL_CONTEXT = struct__CRL_CONTEXT;
pub const PCRL_CONTEXT = ?&struct__CRL_CONTEXT;
pub const PCCRL_CONTEXT = ?&const CRL_CONTEXT;
pub const struct__CTL_CONTEXT = extern struct {
dwMsgAndCertEncodingType: DWORD,
pbCtlEncoded: ?&BYTE,
cbCtlEncoded: DWORD,
pCtlInfo: PCTL_INFO,
hCertStore: HCERTSTORE,
hCryptMsg: HCRYPTMSG,
pbCtlContent: ?&BYTE,
cbCtlContent: DWORD,
};
pub const CTL_CONTEXT = struct__CTL_CONTE
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment